soucis preg_match sur contenu html

soucis preg_match sur contenu html - PHP - Programmation

Marsh Posté le 03-08-2008 à 18:05:27    

bonjour,
 
j'ai un soucis tout bête je pense mais je ne trouve pas la solution :  
 
je parse une page html  

Code :
  1. $mapage = file_get_contents("page.html" );
  2. if (preg_match('#(<body)(.*)(</body> )#i',$mapage, $matches)){
  3.  echo "je récupère tout ce qui se trouve entre les balises body";
  4.  }


ça ne donne rien.
 
en revanche si je copie ma page et que je l'enregistre dans une variable ça marche ou si je fait  

Code :
  1. if (preg_match('#(un texte présent)(.*)(suite du texte présent)#i',$mapage, $matches)){
  2. echo "j'ai trouvé le mot entre les deux,". $matches[2];
  3. }


la ça marche nikel...
 
visiblement c'est les balises qui pose probleme mais je ne vois pas ...

Reply

Marsh Posté le 03-08-2008 à 18:05:27   

Reply

Marsh Posté le 03-08-2008 à 18:18:49    

j'avance : ce qui pose probleme ici :  
if (preg_match('#(<body)(.*)(</body> )#i',$mapage, $matches))
 
c'est le  "/" de </body>.
 
car if (preg_match('#(<body)(.*)  fonctionne bien.
 
donc j'echape le slash, if (preg_match('#(<body)(.*)(<\/body> )#i',$mapage, $matches))
 
rien à faire, ça marche pas...
 
si quelqun pouvais m'aiguiller, ça serait avec grand plaisir...

Reply

Marsh Posté le 03-08-2008 à 18:24:30    

allez encore une, je me répond a moi même :  
 
j'ai,laissé tomber preg_match, j'ai utilisé eregi et la aucun soucis...
enfin c'est bizzard quand même qu'avec preg match ça ai rien donné...

Reply

Marsh Posté le 03-08-2008 à 18:28:35    

Code :
  1. '#<body>(.*)</body>#is'
 

s pour multiligne

 

preg_match est plus rapide, enfin je crois :/ sa dépens du motif ta qu'a tester

 

le site ou j'ai appris et ou je retourne: http://www.expreg.com/

Message cité 1 fois
Message édité par ouiouioui10 le 03-08-2008 à 18:31:56
Reply

Marsh Posté le 04-08-2008 à 10:33:03    

merci je me ke garde en favoris :-)

Reply

Marsh Posté le 04-08-2008 à 10:43:50    

ouiouioui10 a écrit :

preg_match est plus rapide, enfin je crois :/ sa dépens du motif ta qu'a tester


Pas vraiment ... Preg* prends des regexs PCRE tandis que Ereg* prends des POSIX.
Il s'agit de 2 façons différentes d'écrire des regexs, chacune à des avantages et des inconvénients.


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Sujets relatifs:

Leave a Replay

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