fonction str_replace qui fait nimporte quoi ???

Mammouth du PHP | 1967 Messages

26 janv. 2006, 01:59

bonjour à tous j'ai un script avec une fonction str_replace qui me fait pas ce que j'attend d'elle

la voici
$code = "abcdefghijklmnopqrstuvwxyz";
$trad2 = array ("x","y","l","o","p","h","n","e","a","b","c","d","f","g","i","j","k","m","q","r","s","t","u","v","w","z");
$plan=str_replace(array ("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"),$trad2,$code);
la sortie est

Code : Tout sélectionner

vwdijegeabcdfgijkmqrstuvwz
au lieu de

Code : Tout sélectionner

xylophneabcdfgijkmqrstuvwz
merci beaucoup pour votre aide

Spols

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

26 janv. 2006, 03:20

La fonction que tu recherches est strtr(). str_replace() peut agir sur la même lettre plusieurs fois d'affilée, par ex: x -> a -> i
$code = "abcdefghijklmnopqrstuvwxyz";
$plan = strtr($code, 'abcdefghijklmnopqrstuvwxyz', 'xylophneabcdfgijkmqrstuvwz');
Attention à la casse, majuscules != minuscules

Mammouth du PHP | 1967 Messages

26 janv. 2006, 14:58

merci pour la réponce je vais changer mais c'est bizarre cette fonction fonctionne avec d'autre tableau du meme genre

Spols