|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 3 ![]() |
Bonjour à tous,
J'ai un petit soucis, je cherche à remplacer grâce à preg_replace un mot exact dans une chaine. $ancien = "Je possède plusieurs espèces de chat"; $origine = array("/espèce/", "/chat/"); $remplace = array("races", "chien"); $nouveau = preg_replace($origine, $remplace, $ancien); Dans voilà, dans mon exemple, la fonction reg_replace va remplacer espèces par racess, j'aimerais bien arriver à reconnaître la sous chaîne exact pour ne la remplacer que si elle colle. J'ai parcouru le forum mais je n'ai rien vu encore pour m'aider. Merci d'avance. Arnaud |
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Utilisez alors le délimiteur de mot \b :
Code :
$origine = array("/\bespèce\b/", "/\bchat\b/"); |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : février 2008 Messages : 3 ![]() |
Merci
J'ai réussi à rajouter la détection des plurielles et des féminins. Code :
$nouveau = preg_replace( '/\b('.$origine.')+(?:|s|e|es)\b/i', '$remplace', $ancien); J'ai voulu tenter ça : Code :
$nouveau = preg_replace( '/\b('.implode('|', $origine).')+(?:|s|e|es)\b/i', '<a href="'.XOOPS_URL.'/definition-'.$entryID.'-'.rewrite($1).'.html" title="'.$1.'"'.$thetarget.$styletoembellish.'>$0</a>', $ancien); En tout cas, encore merci, ça m'a permis de bien avancer cette aprem. |
|
|
00
|
|
|
#4 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Si vous avez besoin de faire évaluer la chaîne de remplacement qui est du code PHP à exécuter lors de chaque remplacement il faut s'orienter vers la fonction preg_replace_callback (préférable) ou le modificateur e. Je vous laisse faire des recherches, nous l'expliquons régulièrement
|
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 3 ![]() |
Encore merci
J'ai encore bien avancé : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com