Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 28/01/2011, 02h01   #1
Membre régulier
 
Inscription : octobre 2006
Messages : 324
Détails du profil
Informations personnelles :
Âge : 59
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2006
Messages : 324
Points : 70
Points : 70
Par défaut récupérer code source HTML via PHP

Hello,
Je souhaite pouvoir récupérer le contenu des balises H2 d'une page.
Le but étant d'insérer ces contenus dans une balise META.

Je maitrise PHP correctement mais je ne vois comment
- récupérer le code source (le HTML pas PHP bien sur)
- extraire les contenus entre les balises H2

Si vous avez un tuyau...
merci d'avance
__________________
Quand on a mesuré l'étendue de ce qu'il nous reste à apprendre, on parle moins vite de ce que l'on croit savoir...
tremeur53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 15h16   #2
Membre régulier
 
Inscription : décembre 2009
Messages : 44
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 44
Points : 90
Points : 90
Bonjour,

Je dirais:
fopen pour récupérer la page,
fgets pour traiter chaque ligne
et en utilisant les expressions régulières, ça devrait pas poser trop de problèmes pour récupérer le contenu entre les balises h2 je pense.
adc15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 15h28   #3
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,
Citation:
Envoyé par adc15
ça devrait pas poser trop de problèmes pour récupérer le contenu
Oui, à l'aide de preg_match_all, on peut faire :
Code php :
preg_match_all('%<h2[^>]*>(.+?)</h2>%s', $html, $matches);
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 15h45   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Eric2a Voir le message
Salut,

Oui, à l'aide de preg_match_all, on peut faire :
Code php :
preg_match_all('%<h2[^>]*>(.+?)</h2>%s', $html, $matches);
berk, DOMDocument est la pour ca autant l'utiliser...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 15h54   #5
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Citation:
Envoyé par stealth35
berk, DOMDocument est la pour ca autant l'utiliser...
J'étais sûr que tu allais réagir Stealth35...

Il est vrai que dans certains situations, les expressions rationnelles ne sont pas adaptées.
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 16h04   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Eric2a Voir le message
J'étais sûr que tu allais réagir Stealth35...

Il est vrai que dans certains situations, les expressions rationnelles ne sont pas adaptées.
oui je bondi assez vite la dessus, et comme je suis de bonne humeur :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$url = 'http://tonaddresse.com/page.html';
 
libxml_use_internal_errors(true);
 
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
 
libxml_clear_errors();
 
$nodes = $doc->getElementsByTagName('h2');
 
foreach($nodes as $node)
{
    var_dump($node->nodeValue);
}
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 17h39   #7
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Citation:
Envoyé par Eric2a Voir le message
J'étais sûr que tu allais réagir Stealth35...

Il est vrai que dans certains situations, les expressions rationnelles ne sont pas adaptées.
Bah dans ce cas, disons que ce n'est "plus" adapté. L'utilisation des expressions rationnelles pour parser un document est souvent un "vieux" réflexe d'avant php5

On pourrait le faire avec les expressions rationnelles mais depuis DOMDocument qui a été conçu pour ça, autant l'utiliser car c'est souvent plus simple (pour qui connait un peu le DOM) et certainement plus rapide.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 17h51   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par ABCIWEB Voir le message
Bah dans ce cas, disons que ce n'est "plus" adapté. L'utilisation des expressions rationnelles pour parser un document est souvent un "vieux" réflexe d'avant php5

On pourrait le faire avec les expressions rationnelles mais depuis DOMDocument qui a été conçu pour ça, autant l'utiliser car c'est souvent plus simple (pour qui connait un peu le DOM) et certainement plus rapide.
et encore DomDocument existait en PHP 4
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 18h51   #9
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 559
Points : 1 559
Citation:
Envoyé par stealth35 Voir le message
et encore DomDocument existait en PHP 4
Tu es certain ? parce que http://www.php.net/manual/fr/domdocument.construct.php
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 19h12   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par ABCIWEB Voir le message
http://www.php.net/manual/fr/book.domxml.php


et sachant que y'a toujours le parseur par défaut (super pratique en stream au passage) :
http://www.php.net/manual/fr/book.xml.php
__________________
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 03h40.


 
 
 
 
Partenaires

Hébergement Web