Regex: remplacer un mot-clé par un lien

Regex: remplacer un mot-clé par un lien - PHP - Programmation

Marsh Posté le 16-06-2011 à 12:17:34    

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 :
  1. $texte = "lorem ipsum dolor sit amet consectetuer;
  2. $motcle = 'dolor';
  3. $texte = preg_replace("#$motcle(?!</a> )(?![^<]+> )#s","<a href=\"/tags/".$motcle."\">$motcle</a>",$texte);


 
Ce code fonctionne avec les exemples suivants:

Code :
  1. $texte = "lorem ipsum dolor sit amet consectetuer;

-> Lien généré

Code :
  1. $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 :
  1. $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...

Reply

Marsh Posté le 16-06-2011 à 12:17:34   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed