no save
Assistance
Achat
News

Forum | webmastering
ereg_replace : pb de regexp
Edouard, le mar. 28 août 2007 à 14:56:24
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


rénolipus
août 07
Suivant
REPONSES
rénolipus
août 07
Edouard
août 07
rénolipus
août 07
Edouard
août 07
Version Web
Réalisé par RedShift
no save