str_replace & preg_replace

str_replace & preg_replace - PHP - Programmation

Marsh Posté le 09-04-2008 à 15:38:29    

Bonjour,
 
Je bloque sur une petit probleme, peut etre trop simple, que je n'arrive vraiment pas a resoudre!!! :
 
str_replace(array("nl", "enl", "etc" ), array("Newsletter (Papier)", "e-Newsletter", "mon text" ), "test, nl, enl, ..." );
 
"nl" est bien remplace par "Newsletter (Papier)"
mais par contre "enl" est remplace aussi par "Newsletter (Papier)" et ca m'affiche "eNewsletter (Papier)" :(
 
y a t il un moyen de demander de chercher et remplacer la valeur COMPETE d'un element de tableau???
 
Merci beaucoup de votre aide.

Reply

Marsh Posté le 09-04-2008 à 15:38:29   

Reply

Marsh Posté le 09-04-2008 à 16:06:13    

commence ton replace par les valeurs les plus "longues" ( en l'occurence fait le replace en enl avant celui de nl )


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 09-04-2008 à 16:21:58    

merci pour ta reponse.
mon tableau de recherche est deja defini, dois utiliser une fonction qui modifie l'ordre des valeurs selon leurs longueur????

Reply

Marsh Posté le 09-04-2008 à 16:34:15    

Essaie ça sinon (car je suppose que tu ne veux remplacer que les "mots" entiers) :
 
preg_replace(array('/\bnl\b/', '/\benl\b/', '/\betc\b/'), array('Newsletter (Papier)', 'e-Newsletter', 'mon text'), $tachaine);


Message édité par sielfried le 09-04-2008 à 16:34:53

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 09-04-2008 à 17:16:01    

oui, je veux remplacer que les "mots" entiers.
desole, je ne saurai faire ce que tu m'as dit car mon tableau est deja defini... comment pourrais je y introduire les '/\b...\b/' ??
 
merci mille fois :)

Reply

Marsh Posté le 09-04-2008 à 20:23:21    

Code :
  1. function make_word_pattern($word) {
  2.  return '/\b' . $word . '\b/';
  3. }
  4. $array = array_map('make_word_pattern', $array);


Message édité par sielfried le 09-04-2008 à 20:23:39

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 10-04-2008 à 11:01:57    

Wow, c'est magique, ca marche :)
je te remercie infiniment pour ton aide...
merci

Reply

Marsh Posté le 11-04-2008 à 12:12:33    

Bonjour, encore moi :)
je reviens vers vous juste pour un petit conseil.
je suis entrain de concevoir un outil de mailing et je me pose qlq questions qui m'empechent d'avancer...
quel est le meilleur moyen de stocker les destinataires (entre 1 et 5000 destinataires) ???
j'ai mis une table secondaire qui contient juste 2 champs : id_mailing et id_destinataire, mais lorsque je fais une recherche et j'obtiens par exemple 1500 destinataires, ca met bp de temps a enregistrer les 1500 enregistrements... :(
devrais je les mettre ds un seul champ separes par un separateur???
 
merci encore une fois.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed