[résolu]Expression rationelle

Expression rationelle [résolu] - PHP - Programmation

Marsh Posté le 05-06-2008 à 15:39:38    

Bonjour,
 
J'ai à faire à un probleme tout bete mais je ne sais pas comment m'en sortir proprement. J'ai ca:
 
<toto>
blibli
</toto>
 
<toto>
blabla
</toto>
 
...
 
Je dois récupérer ca:
 
<toto id="1">
blibli
</toto>
 
<toto id="2">
blabla
</toto>
 
...
 
 
Je ne peux pas le faire avec preg_replace parce que mon expression rationelle dois porter uniquement sur <toto>(.*?)</toto> et que les deux sont remplacées avec le meme numero. Comme eventuellement le code de toto est le meme dans les deux balise, pas moyen non plus de faire un pregmatch et de preg remplacer apres.
 
Une idée pour faire ca proprement?
 
Merci.


Message édité par milootooloo le 10-06-2008 à 20:54:10
Reply

Marsh Posté le 05-06-2008 à 15:39:38   

Reply

Marsh Posté le 05-06-2008 à 15:48:47    

Ouaou..
C'est quand même de l'artillerie lourde non?
Mais merci beaucoup, je m'en servirai si je ne m'en sort pas avec les fcts de recherche de chaine standard.
 
Vous êtes tout de meme d'accord que c'est pas evident avec des preg non?


Message édité par milootooloo le 05-06-2008 à 15:49:23
Reply

Marsh Posté le 05-06-2008 à 16:08:50    

ben si tu veux faire propre, dom est prévu pour ça...
sinon oui c'est faisable avec PCRE

Reply

Marsh Posté le 05-06-2008 à 16:53:19    

Ok, je vais regarder ce que c'est PCRE. Merci beaucoup.

Reply

Marsh Posté le 05-06-2008 à 16:56:02    

PCRE c'est les preg_* que tu utilises.
 
T'as demandé un truc propre, DOM est ce qui se fait de plus adapté dans le domaine, et avec cette bibli tout est 20 fois plus concis qu'avec l'API de base. C'est pas particulièrement lourd non plus, et c'est hyper simple à installer. [:spamafote]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 05-06-2008 à 17:06:39    

Je crois que je vais utiliser preg_replace_callback() que je viens de découvrir. En tout cas merci pour l'idée de DOM parce que le jour ou je referais toute cette partie, je le referais avec ca. J'aime seulement avoir du code similaire pour des opérations similaires et j'ai déja des dixaines de balises traitées avec des regexp.


Message édité par milootooloo le 05-06-2008 à 17:07:07
Reply

Sujets relatifs:

Leave a Replay

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