Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2011, 15h56   #1
Invité régulier
 
Inscription : janvier 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 60
Points : 9
Points : 9
Par défaut Regex pour parser une page web

Bonjour,

J'avoue me perdre un peu dans les regex...

J'aimerais parser une page web et récupérer plusieurs éléments identifiables en fonction de leur emplacement dans la page.

Par exemple, pour une même page, récupérer tout ce qui est contenu entre :

et

sachant qu'il y a un saut de ligne mais à priori sans espace entre alt> et </a>. alt> correspond à la fin d'un code html d'image (<img src="url" alt>)

Ensuite, pour ce bloc de page récupérer, j'aimerais à nouveau au sein de ce bloc parser des éléments contenus entre certaines balises.

Merci par avance pour votre aide !
cyberlp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 15h59   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
y'a plein de sujets la dessus et tu me verras dire à chaque fois :
pour parser du HTML c'est DOMDocument
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 16h22   #3
Invité régulier
 
Inscription : janvier 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 60
Points : 9
Points : 9
ok pour le parsing, je vais regarder cela même si je ne capte pas grand chose...

pour les regex, par contre, j'ai bien lu la doc ici (http://php.developpez.com/sources/?page=regexp) mais je ne comprends pas pourquoi ceci ne retourne rien :

Code :
1
2
3
4
$line=file_get_contents("monURL");
$pattern = "#<strong>(.*)Lien#s";
$titre = preg_match_all($pattern,$line,$regs);
echo $regs[0];
cyberlp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 17h10   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
Citation:
Envoyé par cyberlp Voir le message
je ne capte pas grand chose...
Citation:
Envoyé par cyberlp Voir le message
mais je ne comprends pas pourquoi ceci ne retourne rien
quitte a pas comprendre autant faire les choses en plus propre et utilise DomDocument
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 17h30   #5
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par stealth35 Voir le message
y'a plein de sujets la dessus et tu me verras dire à chaque fois :
pour parser du HTML c'est DOMDocument
Tu le croiras ou pas mais j'ai lu ce fil rien que pour t'entendre dire que "pour parser du HTML c'est DOMDocument"
T'as une touche spéciale sur ton clavier ?
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 01/12/2011, 17h35   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
Citation:
Envoyé par rawsrc Voir le message
Tu le croiras ou pas mais j'ai lu ce fil rien que pour t'entendre dire que "pour parser du HTML c'est DOMDocument"
T'as une touche spéciale sur ton clavier ?
vu l'heure du poste je me suis douté qu'on m'avait laissé la place
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/12/2011, 23h35   #7
Membre du Club
 
Homme Boris
conception et traitement de documents xhtml
Inscription : août 2011
Messages : 107
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : conception et traitement de documents xhtml
Secteur : Conseil

Informations forums :
Inscription : août 2011
Messages : 107
Points : 59
Points : 59
Citation:
Envoyé par cyberlp Voir le message
ok pour le parsing, je vais regarder cela même si je ne capte pas grand chose...
Comme je l'avais écrit en d'autres endroits, je prévois de réaliser un tuto spécifiquement orienté (x)html. Par contre, je ne pense pas pouvoir l'écrire en 2011.

Citation:
Envoyé par stealth35 Voir le message
tu me verras dire à chaque fois :
pour parser du HTML c'est DOMDocument
Pourquoi, Stealth, cette insistance par rapport au html ? Sans doute parce que la demande concernant html est plus fréquente que celle concernant des documents xml ?

En fait, pour parser n'importe code de type xml, qu'il soit html ou non, il faut utiliser DOMDocument, qui est une approche nettement plus rigoureuse et plus riche que de parser par regex, ces dernières devant être réservées à la seule analyse des noeuds texte terminaux. (L'effort de mise à niveau est certes plus conséquent. Par contre, une fois qu'on a "capté", on ne peut plus s'en passer...)
Doc_xhtml est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 23h56   #8
Membre du Club
 
Homme Boris
conception et traitement de documents xhtml
Inscription : août 2011
Messages : 107
Détails du profil
Informations personnelles :
Nom : Homme Boris
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : conception et traitement de documents xhtml
Secteur : Conseil

Informations forums :
Inscription : août 2011
Messages : 107
Points : 59
Points : 59
Citation:
Envoyé par cyberlp Voir le message
Par exemple, pour une même page, récupérer tout ce qui est contenu entre : et
Je ne sais pas (encore ?) traiter en DOM ce type de besoin, lorsqu'il faut lire un contenu à cheval sur deux balises. Le contenu d'une balise, c'est $balise -> nodeValue. Mais là, comment faire ?
Doc_xhtml est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 05h12   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
Citation:
Envoyé par Doc_xhtml Voir le message
En fait, pour parser n'importe code de type xml, qu'il soit html ou non, il faut utiliser DOMDocument, qui est une approche nettement plus rigoureuse et plus riche que de parser par regex, ces dernières devant être réservées à la seule analyse des noeuds texte terminaux. (L'effort de mise à niveau est certes plus conséquent. Par contre, une fois qu'on a "capté", on ne peut plus s'en passer...)
Suffit juste de savoir comment marche les regex et le DOM à la base, c'est du simple parcage de texte y'a pas de miracle
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h52.


 
 
 
 
Partenaires

Hébergement Web