expressions régulières

kouikou
Invité n'ayant pas de compte PHPfrance

01 juin 2006, 17:07

Voili voilou ca fait un moment que je tourne en rond avec les expressions regulieres.

J'ai un fichier xml comme:
<vote><votenbre>0</votenbre><voteyes>0</voteyes><rateyes>0</rateyes><date>000</date></vote>

Avec du php je voudrais :
- soit, remplacer tout ce qu'il y a entre vote (balise du debut) et vote (balise a la fin).
- Ou bien effacer absolument tt pour tout reecrire

J'ai donc tape qqchose qui ne marche pas :
$gbook=ereg_replace("^vote$","vote>".$NewMess."</vote",$gbook);
Je ne comprends pas tres bien pourquoi ?
Please pourriez vous m'indiquer la synthaxe a utiliser?

Merci bicoup
kouikou

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 juin 2006, 17:43

$gbook=ereg_replace("^vote$","vote>".$NewMess."</vote",$gbook);
Ton patterne recherche une ligne commencant (^) et se terminant ($) en ne contenant que les lettres "v","o","t" et "e" (vote)

En fait ce qu'il te faut, ce sont les lignes contenant (et à partir de) "<vote>", contenant n'importe quoi, jusqu'à ce qu'il trouve un "</vote>", soit :

Code : Tout sélectionner

"#<vote>.*</vote>#Ui"
U : pour éviter la gourmandise et s'arrêter au premier </vote> trouvé
i : pour ignorer okazou la casse des lettres (majuscules/munuscules)

A remplacer par "<vote>".$NewMess."</vote>" dans ta chaine :)

A tester :)