probeleme ereg replace.

Mammouth du PHP | 558 Messages

29 mars 2009, 12:35

je voudrais supprimé tout ce qui n'est pas entre "<p class=couleurpromo>" et </p> la je ne supprime rien.
je ne sait pas combien de charactere il peu y avoir dans la balise p.
j'ai essayer plusieur regex mais sans succès pour le moment j'en suis la.
Voici la ligne qui ne fonctionne pas
$description=ereg_replace("^([<p class=couleurpromo>])([a-zA-Z0-9 éèêëÊËàâäÂÄîïÎÏûùüÛÜôöøÔÖç'</>.-])([</p>])",'',$description);
merci

Mammouth du PHP | 558 Messages

31 mars 2009, 08:20

J'y suis presque mais il faut inverser la suppression. en mettant "!" devant le ereg replace sa me suppime tous.
$description=ereg_replace("^<p class=couleurpromo>([a-zA-Z0-9 éèêëÊËàâäÂÄîïÎÏûùüÛÜôöøÔÖç'</>.-]+)</p>","",$description);
un petit coup de pouce merci.

Eléphant du PHP | 141 Messages

31 mars 2009, 09:18

Pourquoi ne pas simplement supprimer tous les caractères ?
$regexp = "^<p class=couleurpromo>.*</p>";
.* permet de trouver n'importe quel caractère n'importe combien de fois.
Ensuite, tu remplace tout ça par : "<p class=couleurpromo></p>" sinon il supprime tout ;)

Mammouth du PHP | 558 Messages

31 mars 2009, 12:44

Je l'est fait en 2 ligne finalement mais si il y a une methode plus optimisé je suis preneur.
$description1=ereg_replace("^<p class=couleurpromo>([a-zA-Z0-9 éèêëÊËàâäÂÄîïÎÏûùüÛÜôöøÔÖç'</>.-]+)</p>","",$description);
$description=str_replace($description1,'',$description);
merci julian d'avoir voulu essayer de m'aidé ta solution me donne le resulta inverse de ce que je veux.

Eléphant du PHP | 141 Messages

31 mars 2009, 16:57

Pardon j'ai mal lu ;) Ce code devrait fonctionner :
ereg_replace("^<p class=couleurpromo>(.*)</p>", "$1", $description);

Mammouth du PHP | 558 Messages

02 avr. 2009, 22:18

sa n'enleve rien du tout.
le "$1" signifie quoi?

ViPHP
AB
ViPHP | 5818 Messages

02 avr. 2009, 22:29

Pour info évites d'utiliser ereg_replace. Ta fonction sera bien plus performante avec preg_replace.

Et puis il y a des bruits qui ont couru comme quoi POSIX (ereg and co) ne serait plus supporté en php6.

Sur ce point je n'ai aucune info, mais tant qu'a créer un nouveau code autant utiliser PCRE (preg and co) qui de toute façon est plus puissant et plus performant.
http://www.siteduzero.com/tutoriel-3-14 ... #ss_part_1