simili parser sur du html avec des regexp - PHP - Programmation
Marsh Posté le 02-02-2005 à 11:42:05
Si la page est valide XHTML, tu peux utiliser des fonctions DOM XML qui sont 25 fois plus simples
Marsh Posté le 02-02-2005 à 11:51:19
Mais comment on fait pour obtenir du xhtml ou xml a partir d'une page html?
En fait j'essai sur sachant que j'ai choisit de voir les resultats avec "toto" http://www.ncbi.nlm.nih.gov/entrez [...] levance=on
Marsh Posté le 02-02-2005 à 11:54:14
Ben l'html, ça fait longtemps qu'il ne faudrait plus l'utiliser. Maintenant, tout doit être fait en XHTML valide, pour bénéficier des outils XML... Maintenant le site que tu donnes ne respecte pas ça, du coup il faut que tu t'amuses avec des regexp
Marsh Posté le 02-02-2005 à 11:59:00
Bah tu t'y connais un peu en reg exp? Parce que perso je ne vois pas ce qu'il y de mauvais dans mon expression. Je crois que je vais réinventer la roue en faisant ma fonction de A à Z... snif ...snif
Marsh Posté le 02-02-2005 à 12:00:30
ctnul a écrit : |
utilise plutôt preg_replace qui est plus rapide et plus complet, voici un exemple :
Code :
|
Marsh Posté le 02-02-2005 à 12:10:02
Waouh!! c'est beau une reg exp qui marche
Merci de ne pas me faire réinventer la roue.
Par contre en décrypté c'est quoi le # et #i?
Marsh Posté le 02-02-2005 à 12:30:12
ctnul a écrit : Par contre en décrypté c'est quoi le # et #i? |
# c'est un délimiteur de masque (tu peux utiliser aussi / ou autres) et i c'est pour l'option 'insensible à la casse'.
Marsh Posté le 02-02-2005 à 14:13:28
Parfait avec ca , la doc et un bon petit repas je vais m'amuser toute l'après midi.
Merci et bon ap,
C.
Marsh Posté le 02-02-2005 à 11:40:50
Bonjour,
J'essaie d'extraire le texte d'une page html en fonction des balises avec les expressions régulieres.
Exemple d'essai d'extraction du titre:
$html="<div class="titre"> LE TITRE</div>
<div class="auteur">L'AUTEUR</div>
<div class="texte"> LE TEXTE</div>";
eregi("<div class=\"titre\">[a-zA-Z\-\.\']*</div>", $html, $res);
$item=ereg_replace("<div class=\"toc-title\">",'',$res[0]);
$item=ereg_replace("</div>",'',$item);
Le probleme c'est que ca marche pas du tout, j'ai l'impression que le probleme vient du fait qu'il y ai plusieurs </div> mais c'est peut etre pas du tout ca!