Remplacer un mot qui n'est pas compris entre 2 balises

Remplacer un mot qui n'est pas compris entre 2 balises - PHP - Programmation

Marsh Posté le 07-11-2010 à 14:03:53    

Bonjour,
 
J'ai un script qui me remplace une liste de mots-clés par une url.
 

Code :
  1. $texte = "je ne mange pas d'autruche";
  2. $mot='/\b(autruche)\b/i';
  3. $url='<a href="www.autruche.com">$1</a>';
  4. $texte = preg_replace($mot,$url,$texte,-1);


 
Je souhaiterai ne pas remplacer le mot 'autruche' quand celui-ci est déjà compris entre 2 balises <a></a> ou dans le href=""
 
Ce qui ferait :
 
je ne mange pas d'autruche
>>> je ne mange pas d'<a href="www.autruche.com">autruche</a>'
 
je ne mange pas d'<a href="www.autruche.org/index.html">cliquez ici</a>
>>> on ne modifie rien
 
je ne mange pas d'<a href="www.animaux.org/index.html">tout sur l'autruche</a>
>>> on ne modifie rien
 
Je pense que je dois modifier :

Code :
  1. $mot='/\b(autruche)\b/i';

en interdisant la chaine de commencer par <a et finir par </a> mais je n'y arrive pas, j'ai essayé ça :

Code :
  1. $mot='/\(<a)\b(autruche)\b\(<\/a> )/i';


 
Merci infiniment pour votre aide

Reply

Marsh Posté le 07-11-2010 à 14:03:53   

Reply

Sujets relatifs:

Leave a Replay

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