Bonjour,
j'ai un problème de regexp.
je veux faire le remplacement de mots (stockés dans une base mysql) par des liens hypertextes :
exemple :
j'ai ma table remplacement :
musée | http://www.musee.com
j'ai une chaîne de caractère :
$string="ma chaîne avec les mots à remplacer : musée, ou Musée ou musée, ou musée. Mais attention pas musées.";
ICI je n'arrive pas à trouver la bonne fonction et la mettre en oeuvre pour remplacer musée ou Musée suivit ou non de caractères de ponctuation mais pas quand le mot fait partie d'une autre mot (musées).
En effet str_replace et stri_replace ne le permettent pas car systématiquement php me mettra le mot musée en minuscule et ne tiendra pas compte des espaces.
Le mieux pour l'instant c'est çà, qui gère les espaces de part et d'autre, mais je ne gère pas les ponctuations :
$SEARCH=array("musée");
$REPLACE=array("<a...> musée </a>");
$BIGREPLACE=array("<a...> Musée </a>");
foreach ($SEARCH as $key => $value){
$string2=str_replace(str_pad($value, strlen($value)+2," ", STR_PAD_BOTH),$REPLACE["$key"],str_replace(str_pad(ucfirst($value), strlen($value)+2," ", STR_PAD_BOTH),$BIGREPLACE["$key"],$string));
}
Si quelqu'un sait comment utiliser ereg_replace, pour faire ce que je recherche je serais preneur.
Merci d'avance.
Edouard

