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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP]Pb: Remplacer 1 variable par 1 mot avec RegEx

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP]Pb: Remplacer 1 variable par 1 mot avec RegEx

n°1507356
Yoyo@
Posté le 26-01-2007 à 09:57:07  profilanswer
 

Salut,
 
Je cherche, en PHP, à remplacer la première occurrence d'un mot par un autre mot. De plus, je souhaite que le mot en question ne soit remplac é que si c'est un mot à part entière, et non pas une partie d'un mot.
 
La première implémentation m'étant venue à l'esprit fut donc:
 

Code :
  1. function replaceWholeWordOnce($search, $replace, $subject){
  2. return preg_replace("/^(.*?)\b" . $search . "\b(.*)$/", "$1$replace$2", $subject);
  3. }


 
Cependant, je me suis vite rendu compte que si ^search contenait un caractère spécial au vu des RegEx du genre '(', alors, ça ne marchait pas.
 
Est ce à dire que je dois échapper, dans $search, chacun de ces caractères spéciaux, et donc avoir une implémentation de la forme:
 

Code :
  1. function replaceWholeWordOnce($search, $replace, $subject){
  2. $search=str_replace(array('\\', '/', '^', '.', '[', ']', '|', '(', ')', '?', '*', '+', '{', '}'), array('\\\\', '\\/', '\\^', '\\.', '\\[', '\\]', '\\|', '\\(', '\\)', '\\?', '\\*', '\\+', '\\{', '\\}'), $search);
  3. return preg_replace("/^(.*?)\b" . $search . "\b(.*)$/", "$1$replace$2", $subject);
  4. }


 
Ca me paraît bien lourd quand même.
Est ce qu'il n'y aurait pas un moyen raccourci (et accessoirement plus fiable) de faire ça?
 
Merci.

mood
Publicité
Posté le 26-01-2007 à 09:57:07  profilanswer
 

n°1507362
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-01-2007 à 10:11:29  profilanswer
 
n°1507366
Yoyo@
Posté le 26-01-2007 à 10:17:42  profilanswer
 

Merci beaucoup!
 
Effectivement, ça me rassure.
 
Par contre, je vois que preg_quote échappe beaucoup plus de caractères que moi.
 
Quelle est par exemple l'utilité d'échapper = ou < ?

n°1507369
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-01-2007 à 10:20:45  profilanswer
 

c'est utiliser dans les assertions en PCRE.

n°1507371
Yoyo@
Posté le 26-01-2007 à 10:25:50  profilanswer
 

Effectivement, je les avais oubliées celles-là...
 
Donc, mon code aurait de plus été déficient...ouf!


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

  [PHP]Pb: Remplacer 1 variable par 1 mot avec RegEx

 

Sujets relatifs
Noob : Instruction "&" avant une variable?Php WriteExcel
[ PHP ] pb de reconnaissance de fonctions. Help!!![PHP] Probleme de content type avec IE (mais aussi de session)
Récupérer le résultat d'une fonction javascript dans variable phpPHP et les fichiers texte
Traitement des fichiers TXT avec PHPVariable avec Javascript div
Php et excelNom de variable parametré en C
Plus de sujets relatifs à : [PHP]Pb: Remplacer 1 variable par 1 mot avec RegEx


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