IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

récupérer code source HTML via PHP


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 349
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 49
    Par défaut
    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.

  3. #3
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('%<h2[^>]*>(.+?)</h2>%s', $html, $matches);

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Eric2a Voir le message
    Salut,

    Oui, à l'aide de preg_match_all, on peut faire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('%<h2[^>]*>(.+?)</h2>%s', $html, $matches);
    berk, DOMDocument est la pour ca autant l'utiliser...

  5. #5
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    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.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    }

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    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.

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    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

  9. #9
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    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

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    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

Discussions similaires

  1. Récupérer le code source HTML
    Par anassss dans le forum Web
    Réponses: 2
    Dernier message: 15/03/2012, 17h56
  2. Code Source HTML via V12
    Par Sticdoudou dans le forum 4D
    Réponses: 2
    Dernier message: 11/10/2011, 14h05
  3. Récupérer le code source html en java
    Par SAM_92 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 23/03/2011, 15h42
  4. [Tableaux] stocker code source html dans variable php
    Par vonwolf dans le forum Langage
    Réponses: 5
    Dernier message: 12/12/2007, 22h40
  5. récupérer code source page HTML
    Par gianni17 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 02/07/2007, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo