Pourquoi utiliser "strip_tags" ? 
 De Frédéric Bouchery - Mardi 28 Août 2001 à 11:14

Alors qu'on peut le faire avec une seule expression régulière (certe un peu complexe) :

echo preg_replace('%</?((a)|[^/a])(?(2)(?![ >]))[^>]*>%si','',$chaine);

Haaa ... les expressions régulières ;-)

Frédoche

  Ton expression régulière n'est pas "top" 
 De Frédéric Bouchery - Vendredi 31 Août 2001 à 09:23

En effet, tu ne prends pas en compte les majuscules/minuscules et le multiligne, tu n'es pas "tolérant" sur le tags de fermeture (espace aprés le "a") et tu utilises trop facilement l'anti-gourmandise (.*?). Il faudrait mieux écrire :
'`<a ([^>]*)>(.*?)</a *>`si','[a \\1]\\2[/a]'

J'utilise les back-quotes (AltGr + 7) car c'est rare d'en utiliser dans son masque. Pour preuve, tu es obligé d'echaper le slashes (/).

Tout ça n'est pas là pour "critiquer" négativement ton travail (tu postes des astuces et c'est plutôt une bonne chose), mais bien pour apporter des précisions sur l'écriture des regexp compatible Perl.

  Re: Ton expression régulière n'est pas "top" 
 De Yoann Maurel - Vendredi 31 Août 2001 à 14:16

Des critiques comme ca j'en veux plus ;) . Moi qui croyais avoir compris les regexp... Merci en tout cas je vais tacher de voir ca :)
IDG

  L'astuce n'est pas tres utile 
 De Yoann Maurel - Samedi 1er Septembre 2001 à 02:09

J'ai revu les possibilitées de la fonction strip_tags et en fait :
strip_tags($chaine,"<a>") est me semble t'il equivalent. Apres reste le pb de la securité qui n'est pas extra avec cette methode. Rien n'empeche en effet d'utiliser onmouseover a l'interieur de la balise.
Il faut donc me semble t'il autoriser uniquement l' option href="" via une expression reguliere pour regler ce pb (ce que j'ai encore un peut de mal a faire :)
J'utilise strip_tags car la balise anchor n'est pas la seule que je convertisse avec cette methode. Désolé donc pour cette fausse astuce. Mais je ne regrette pas de l'avoir posté vu les precisions qui m'ont été apporté sur les regexp.
Merci encore.