[solved]Preg_replace en Ignorant les contenus des tags HTML

Preg_replace en Ignorant les contenus des tags HTML [solved] - PHP - Programmation

Marsh Posté le 30-03-2009 à 17:37:00    

Bonjour, je suis récemment sur un générateur de liens

Code :
  1. $data="noel et paques sont de grandes fêtes blablabla .. <img src='noel'> <img src='paques'><a href='noel'>noel</a><a href='noel'>paques</a>";
  2. $v="noel";
  3. $replacedKeyword="<a href=\"/$v\" title=\"$v\">$v</a>";
  4. $whole_word="#\\b($v)\\b#i";
  5. $data=preg_replace($whole_word,$replacedKeyword,$data,3);
  6. }


Seulement voilà, comment ne pas remplacer le contenu des balises HTML du texte ???
Cette version modifie le contenus des Tags aussi Well (<img title="noel"> <a title=noel>noel</a> )
avez-vous une solution ? merci
 :jap:  
 
Je pensais à qqch comme ça ..

Code :
  1. #{(?!< )(?!\"|')\\bnoel\\b(?!> )}#is

Message cité 1 fois
Message édité par grosbin le 08-04-2009 à 17:58:33

---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 30-03-2009 à 17:37:00   

Reply

Marsh Posté le 08-04-2009 à 17:15:56    

je ne sais pas si t'auras plus de chances que moi ...
 
cf. http://forum.hardware.fr/hfr/Progr [...] 1867_1.htm :(
EDIT : en tous cas j'active ici aussi l'alerte mail "au cas où" ^^


Message édité par NewsletTux le 08-04-2009 à 17:17:01

---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 08-04-2009 à 17:38:54    

grosbin a écrit :

avez-vous une solution ?


Oui.  :D  

Citation :

je pensais à qqch comme ça ..

Code :
  1. #{(?!< )(?!\"|')\\bnoel\\b(?!> )}#is


Tu as testé ton expression régulière ?
Si oui, ça donne quoi ?
Si non, qu'est-ce que tu attends ?
 
 
Cette fonction pourrait t'intéresser - particulièrement les exemples  :whistle:

Reply

Marsh Posté le 08-04-2009 à 17:51:56    

A force d'essais
preg_replace("@\b$mot(|\b)(?![^<]*> )(?![^>]*</a)@is"


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Sujets relatifs:

Leave a Replay

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