Problème avec preg_match et expressions régulières - PHP - Programmation
Marsh Posté le 26-03-2010 à 12:37:53
Code :
|
Le s spécifie que le . est aussi égalé au retour a la ligne car dans ton cas il cherche juste une balise contenant du texte sur plusieurs lignes
Marsh Posté le 26-03-2010 à 18:42:39
ReplyMarsh Posté le 27-03-2010 à 19:58:23
Perso si c'est juste une seul donnée je conseil plutôt le preg_metch() si c'est plus qu'une seul donnée je suis d'accord dans ce cas la il vaut mieux SimpleXML voir DomDocument qui est plus rapide il me semble (mais aussi plus tatillon niveau erreur)
Marsh Posté le 29-03-2010 à 12:51:52
Vaut clairement mieux du SimpleXML/DomDocument... c'est fait pour.
Si t'utilises quand même preg_match, rajoute aussi le flag U (ungreedy) après le # sinon tu risques d'avoir des surprises...
Marsh Posté le 29-03-2010 à 16:23:43
stealth35 a écrit : pour extraire des donnée XML, utilise soit simpleXML soit domdocument |
Je travaille sur une vieille machine en PHP4 et visiblement il faut PHP5 pour simpleXML ou domdocument. Je vais pas avoir le choix ce sera du preg_match apriori. Du coup plus quelque chose comme ça ?
preg_match("#<BALISE>(.*)</BALISE>#Us",$texte,$contenu);
Marsh Posté le 29-03-2010 à 16:26:15
Tant que t'as pas des <BALISE> à l'intérieur de <BALISE>, ça devrait bien se passer avec ça.
Marsh Posté le 29-03-2010 à 16:58:56
electroger a écrit : |
arf mon pauvre
Marsh Posté le 29-03-2010 à 22:05:29
Reply
Marsh Posté le 26-03-2010 à 11:10:00
Bonjour,
j'ai un petit problème avec la fonctions preg_match... Jusque là j'utilisais les fonctions ereg pour extraire du contenu d'un XML. Ca ressemblait à ça :
eregi("<BALISE>(.*)</BALISE>",$texte,$contenu);
La fonction eregi étant dépréciée j'essaie de la remplacer par un preg_match. J'ai tenter plusieurs choses, mais ça ne marche pas...
preg_match("#<BALISE>(.*)</BALISE>#",$texte,$contenu);
$contenu est un tableau vide...
Est ce que quelqu'un sait comment faire?
Merci !