Page 1 sur 1

Expression rationnelle

Posté : 17 mai 2010, 12:29
par devlop78
Bonjour,

Je cherche une expression rationnelle qui me permettrait de remplacer tous les ":)" dans un texte HTML sauf s'il est compris dans des balises (dans un attribut title par exemple). J'ai pensé à un truc comme /[^<](.*):)(.*)[^>]/U mais je sais déjà que ça ne va pas fonctionner ... ^^

Merci d'avance :)

Re: Expression rationnelle

Posté : 17 mai 2010, 14:15
par Genova

Re: Expression rationnelle

Posté : 17 mai 2010, 14:57
par devlop78
Merci, Nickel !

Code : Tout sélectionner

<?php $mavar = "<p><strong id=':)'>les :) sont des sourires :(</strong></p>"; function replace_Smiley($capture) { $de = array(':)',':('); $par = array('content', 'pas content'); return str_replace($de, $par, $capture[1]).$capture[2]; } echo preg_replace_callback('#((?:(?!<[/a-z]).)*)([^>]*>|$)#si', 'replace_Smiley', $mavar); ?>