Page 1 sur 1

Parse, regex, code html avec simple quote.

Posté : 24 mars 2014, 16:47
par damien_55
Bonjour a tous,

Je cherche a récuperer et parser du code html à partir d'une page, j'utilise xpath.

Je souhaite faire un regex pour une partie pour afficher le code d'une partie de la page appelé.
$reg = '#<div class="annuaire-etablissement-infos">(.*)</div>#';
preg_match($reg, preg_quote($html), $matches);
echo $matches[0];
J'ai rien retour. :?

Mon code a contenu dans cette partie ressemble à ça:
<div class="annuaire-etablissement-infos">
<p>
&Eacute;tablissement privé <br/>
<br/>
rue Léon Blum<br/>75001 <span class="nom-commune">Ambérieu-en-Bugey</span><br/>
T&eacute;l. xxxxxxx&nbsp;/&nbsp;Fax. xxxxxx<br/><br/>
<a href="xxxxxx?code=xxxxx">Contacter l'&eacute;tablissement</a><br/><a target="_blank" href="xxxxx">Consulter le site de l'&eacute;tablissement</a><br/><a target="_blank" href="xxxxxxxxx">Localiser l'&eacute;tablissement</a><br/><br/>
Code &eacute;tablissement : xxxxxx <br/></p>
</div>
Il y a des point virgule et des simple quote dans cette partie comme dans le reste de la page.

Lorque je passe en xpath, cela fonctionne mais j'ai encore du traitement derriere ça, donc pas pratique.

A noter:
$html = file_get_contents($url);
var_dump($html);
Fonctionnel.

Merci de votre aide.

Re: Parse, regex, code html avec simple quote.

Posté : 24 mars 2014, 19:39
par niuxe
Salut,

Ton pattern est mauvais. ;)

Là je viens de corriger légèrement (j'ai fait ça en 5 minutes). Il ne te reste plus qu'à l'améliorer. Tu verras que c'est loin d'être parfait mais en lisant, tu vas comprendre pourquoi ton pattern est erroné. :
$pattern = '#\b<div class="annuaire-etablissement-infos">(\n|\r)+|(.+)(\n|\r)+|(.+)</div>\b#';

Re: Parse, regex, code html avec simple quote.

Posté : 24 mars 2014, 23:54
par damien_55
Merci @Niuxe.

Je vais bosser dessus.

Si tu as une bonne doc sur les regex, je suis preneur. Je suis nul en regex. je saisis pas la logique de ce truc :?

Re: Parse, regex, code html avec simple quote.

Posté : 25 mars 2014, 01:27
par niuxe
Merci @Niuxe.

Je vais bosser dessus.

Si tu as une bonne doc sur les regex, je suis preneur. Je suis nul en regex. je saisis pas la logique de ce truc :?
Ca dépend :

Tu as la traduction de l'excellent livre d'O Reilly. Un must !
Sinon, si tu préfères les cookbook, tu as cet excellent bouquin : (http://shop.oreilly.com/product/0636920023630.do)

Sur le net :
http://www.expreg.com
http://www.lumadis.be/regex/tuto_pcre.php

Tu veux tester tes RegEx :
http://www.lumadis.be/regex/test_regex.php?lang=fr

Il me semble que le webmaster de lumadis.be est un membre de phpfrance. En ce qui concerne les tutos que je t'ai donné, ils me paraissent vraiment pas mal. Je connaissais les RegEx avant de connaître ces liens.

Pour décortiquer mon pattern, c'est simple :

Code : Tout sélectionner

(\n|\r)+|(.+)
Soit une nouvelle ligne plusieurs fois, soit un retour chariot plusieurs fois soit n'importe quel caractère plusieurs fois. La partie que tu devras affiner sera sûrement au niveau des quantificateurs. On voit clairement que ce pattern n'est pas terminé, mais je voulais te mettre sur la piste. ;)

@+

Re: Parse, regex, code html avec simple quote.

Posté : 26 mars 2014, 13:23
par damien_55
Merci @Niuxe; Résolu

Re: [RESOLU] Parse, regex, code html avec simple quote.

Posté : 26 mars 2014, 14:01
par niuxe
de rien je t'en prie. :)