Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
970 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  str_replace je comprend plus! aidez moa!!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

str_replace je comprend plus! aidez moa!!!

n°1630478
GostSn
Lé Ou L'ApéRo?
Posté le 24-10-2007 à 21:02:22  profilanswer
 

bonjours,
je vais pas m'acharner sur ce bout de code qui marche pas, mais je voudrais savoir pourquoi je n'ai pas le résulata voulu
ça me rend fou.
 

$str     = 'abcdefghijklmnopqrstuvwxyz';
$order   = 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');
$replace = array('z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a');
$multi = str_replace($order, $replace, $str);
 
echo $multi;


 
ce qui rend:
 

abcdefghijklmmlkjihgfedcba


 au lieu de zyxwvutsrqponmlkjihgfedcba
 
 
merci de votre aide!
 
existe il une alternative?


---------------
http://www.free-tribes.org
mood
Publicité
Posté le 24-10-2007 à 21:02:22  profilanswer
 

n°1630483
Dan_A
Posté le 24-10-2007 à 21:13:07  profilanswer
 

http://fr.php.net/str_replace

Citation :

existe il une alternative?


$multi = preg_replace($order, $replace, $str);
avec  
$order= array('/a/', '/b/', '/c/',...


Message édité par Dan_A le 24-10-2007 à 21:20:29
n°1630495
GostSn
Lé Ou L'ApéRo?
Posté le 24-10-2007 à 21:33:21  profilanswer
 

merci, g failli finir a l'asile,  
je vais essayer tt ça deminx!


---------------
http://www.free-tribes.org
n°1630504
tpierron
Posté le 24-10-2007 à 21:47:08  profilanswer
 

Bah, ça n'explique toujours pas pourquoi il obtient ce résultat. D'après un exemple de la doc :
 

// Outputs: apearpearle pear
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);


Cette fonction semble avoir été codée avec les pieds : elle fait une boucle du genre for (i = 0; i < strlen($text); i ++).
 
Du coup bonjour les effets de bords ultra prise de tête à débugguer : lorsque dans cet exemple la première occurence de a est remplacé par "apple", la chaine va devenir : "apple p" et le traitement va reprendre après le premier a. Du coup les 2 p vont être remplacés par "pear"  :sweat: .
 
P...n, j'imagine qu'incrémenter i de la différence entre le texte ajouté et celui remplacé aurait donné une fonction trop intuitive....
 
Celà dit, dans son cas toutes les chaines ont la même longueur, ça ne devrait pas poser problème.

n°1630506
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 24-10-2007 à 21:49:34  profilanswer
 

GostSn a écrit :

bonjours,
je vais pas m'acharner sur ce bout de code qui marche pas, mais je voudrais savoir pourquoi je n'ai pas le résulata voulu
ça me rend fou.
 

$str     = 'abcdefghijklmnopqrstuvwxyz';
$order   = 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');
$replace = array('z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a');
$multi = str_replace($order, $replace, $str);
 
echo $multi;


 
ce qui rend:
 

abcdefghijklmmlkjihgfedcba


 au lieu de zyxwvutsrqponmlkjihgfedcba
 
 
merci de votre aide!
 
existe il une alternative?


Une alternative ? Oui, la fonction strrev.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°1630508
GostSn
Lé Ou L'ApéRo?
Posté le 24-10-2007 à 21:56:27  profilanswer
 

tpierron a écrit :

Bah, ça n'explique toujours pas pourquoi il obtient ce résultat. D'après un exemple de la doc :
 

// Outputs: apearpearle pear
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);


Cette fonction semble avoir été codée avec les pieds : elle fait une boucle du genre for (i = 0; i < strlen($text); i ++).
 
Du coup bonjour les effets de bords ultra prise de tête à débugguer : lorsque dans cet exemple la première occurence de a est remplacé par "apple", la chaine va devenir : "apple p" et le traitement va reprendre après le premier a. Du coup les 2 p vont être remplacés par "pear"  :sweat: .
 
P...n, j'imagine qu'incrémenter i de la différence entre le texte ajouté et celui remplacé aurait donné une fonction trop intuitive....
 
Celà dit, dans son cas toutes les chaines ont la même longueur, ça ne devrait pas poser problème.


 
donc, le pb vien de la fonction?
ce n'est pas moi qu'i n'ai rien compris?


---------------
http://www.free-tribes.org

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  str_replace je comprend plus! aidez moa!!!

 

Sujets relatifs
aidez moi SVP...j'ai un problèmechangement de valeur pour toutes les lignes, Aidez moi SVP
[PHP] reg ex j'y comprend rien !Class matrix : comprend pas
Je ne comprend pas d'ou vient cet ecart de couleurRecherche un script , une ..... AIDEZ MOI
Incrémentation de compteur entre 2 fiches, aidez moi svpReplace sans modification de la chaine
[vba] problème Replace / concaténation 
Plus de sujets relatifs à : str_replace je comprend plus! aidez moa!!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR