Page 1 sur 1

Remplacement de caractères, sans succès

Posté : 09 juin 2008, 10:00
par Ekho
Bonjour à tous !

Je viens de passer une bonne partie de ma soirée à essayer de résoudre un problème, aussi viens-je vers vous pour solliciter de l'aide. Je suis très novice en php, mais j'apprends relativement vite.

Voici ce que j'essaye de faire : j'ai une base de donnée SQL dans laquelle sont rangées des informations sur des cartes à collectionner. L'un des chant précise le type de carte (créature, enchantement, terrain...). Je voudrais donc programmer quelque chose qui puisse vérifier si la carte sélectionnée est de type "Créature" ou non. Deux problèmes à cela :
- le risque que "Créature" soit entré dans la base de donnée sans majuscule, et sans accent
- le fait que le type de la carte ne sera jamais "Créature" seul, mais plutot "Créature : gobelin", ou "Créature-artefact"...

Voici donc ce que j'ai fait :
$type = $donnees['crt_type']; // 1. on récupère le type dans la bdd
$type = strtolower($type); // 2. on met tout en minuscule
$type = str_replace("é", "e", $type); // 3. on remplace les 'é' par des 'e'
if(ereg('creature', $type)) { // 4. on vérifie si $type contient 'creature'
...
}
Les 1 et 2 fonctionnent bien. Mais le 3 ne fonctionne pas : le 'é' reste 'é'. J'ai tout essayé, mais sans succès. Aprés avoir parcouru de nombreux forums, il semble que ça vienne d'un problème d'encodage, mais là, j'avoue que je ne comprend pas du tout !

Nota :
$type = str_replace("é", "e", "créature");
Ca, ça fonctionne.

Merci d'avance de votre aide...

EDIT : je suis désolé, je n'ai pas du tout posté dans la bonne catégorie. Si un modo pourvait déplacer mon sujet... :-S

Re: Remplacement de caractères, sans succès

Posté : 09 juin 2008, 10:02
par zeus
EDIT : je suis désolé, je n'ai pas du tout posté dans la bonne catégorie. Si un modo pourvait déplacer mon sujet... :-S
C'est fait ;)

Re: Remplacement de caractères, sans succès

Posté : 09 juin 2008, 10:50
par b.jerome
Bonjour à tous !
$type = str_replace("é", "e", "créature");
Ca, ça fonctionne.

Merci d'avance de votre aide...
Si ca, ca fonctionne il est probable que $type != @ "créature"

Affiche un echo ou un vardump sur $donnees['crt_type'] pour voir ce que ça retourne. ou bien vérifie dans ta base de données que c'est bien écrit créature et pas quelque chose du genre 'crÉture' ou je ne sais quoi encore en fonction du type de ta base de données.

Posté : 09 juin 2008, 11:09
par Ekho
C'est à n'y rien comprendre...

Je viens de réessayer le code que je vous ai mis ci-dessus. Et ça fonctionne... Alors que ça n'a pas fonctionné de toute la soirée ! Je ne comprend pas.

Sachant que j'étais sur Linux hier soir, et que je suis sous Windows ce matin, est-ce que ça peut avoir une influence (en particulier au niveau de l'éditeur de texte) ?! Mais j'en doute.[/php]