Bonjour,
je suis à la recherche d'une regex qui me permet de remplacer un mot-clé présent dans un texte par un lien. Rien de bien compliqué jusque là, si ce n'est que je veux générer un lien uniquement si ce mot-clé n'est pas déjà présent dans un lien.
Exemple:
Code :
- $texte = "lorem ipsum dolor sit amet consectetuer;
- $motcle = 'dolor';
- $texte = preg_replace("#$motcle(?!</a> )(?![^<]+> )#s","<a href=\"/tags/".$motcle."\">$motcle</a>",$texte);
|
Ce code fonctionne avec les exemples suivants:
Code :
- $texte = "lorem ipsum dolor sit amet consectetuer;
|
-> Lien généré
Code :
- $texte = "lorem ipsum <a href="...">dolor</a> sit amet consectetuer;
|
-> lien non généré
Il y'a une exception qui ne fonctionne pas, c'est si le mot-clé se trouve parmi autre chose dans le lien, par exemple:
Code :
- $texte = "lorem ipsum <a href="...">ok dolor test</a> sit amet consectetuer;
|
-> lien généré, alors qu'il ne devrait pas l'être
Si quelqu'un a une idée...