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

Bibliothèques et frameworks PHP Discussion :

[XML] Impossible de "parser" un fichier HTML avec simple DOM


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [XML] Impossible de "parser" un fichier HTML avec simple DOM
    Bonjour à tous !

    cela fait 2 jours que je ne parviens pas à "parser" un fichier HTML qui figure au meme emplacement que mon fichier PHP.

    J'utilise la classe SIMPLE DOM PARSER, qui me plait beaucoup ! Donc pas la peine de me convaincre d'utiliser une autre classe, et de toute façon, l'idée est aussi de trouver la solution à ce problème pour les suivants qui auront le même problème !

    Pour tout expliquer, regardez mon code. Quand je veux parser un fichier externe (sur un site distant comme www.google.com), ca marche ! Quand je veux parser une variable initialisée avec un contenu HTML "manuellement", ca marche ! Quand je veux parser mon fichier HTML, ca marche pas !

    "Marche pas" veut dire qu'il me retourne un tableau vide ! Il ne trouve (avec "FIND") aucune correspondance avec les balises demandées...
    Pour le vérifier, la fonction VAR_DUMP me retourne " array(0) { } "


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    require_once ("rosters/simple_html_dom.php");
    $html = new simple_html_dom();
    $html=file_get_html('CrewConnexRoster.htm');
    // $html=file_get_html('http://www.google.com/);
    // $html = str_get_html("<div>foo <b>bar</b></div>"); 
    $ret = $html->find("div");
    var_dump($ret);
    foreach($ret as $element) 
        echo $element . '<br>'; 
    $html->clear();
    ?>
    Et pourtant, je peux correctement afficher le fichier HTML par un navigateur, donc le fichier est bien placé et correctement placé.

    C'est comme si PHP ne pouvait lire correctement le fichier situé dans le répertoire...

    Le répertoire est situé sur un serveur distant, tournant sous Apache2 (O/S Nebian).

    UNE IDEE ?!?


    merci d'avance !

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Peut-être que ton fichier n'est pas syntaxiquement correct, les navigateurs peuvent se débrouiller pour afficher un résultat correct (bien que pas garantit) mais pas un parseur...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Oui, ca pourrait etre vrai, mais quand je dis que cela marche en direct depuis une variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $html = str_get_html("<div>foo <b>bar</b></div>");
    alors pourquoi cela ne marche pas en utilisant un fichier qui contient stictement la meme chose ? (sans <HEAD> ni rien d'autre du format classique HTML)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $html=file_get_html('CrewConnexRoster.htm');
    Je comprends pas la différence....

    Merci de ta réponse !
    Une autre idée ?

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Citation Envoyé par tomcat91fr
    Je comprends pas la différence....
    La pérmission d'accès est une et c'est possible qu'il soit la raison majeure quoi qu'il soit un peu inimagineable qu'il y soit parvenu sans faire quelque chose délibérée !

    Pourtant, je pose principalement pour une chose que j'ai rencontré pour voir ce que c'est simple html dom parser que vous aimez tant.
    Citation Envoyé par tomcat91fr
    J'utilise la classe SIMPLE DOM PARSER, qui me plait beaucoup ! Donc pas la peine de me convaincre d'utiliser une autre classe...
    Je trouve ça vaut beaucoup de peine !

    Ceci vous fait écraser le système : je utilise str_get_html puisque au moins ça marche pour vous.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //attention : Ceci vous fait écraser le système - vous êtes cautionné !
    //$html_base = str_get_html('<div>foo <b>bar</b></div>');  //ceci donne 7500+ lignes pour var_dump
    $html_base = str_get_html('<body><div>foo <b>bar</b></div></body>');   //ceci mange trop de resources déjà
    var_dump($html_base);
    En tout cas, la classe n'est pas si nécessaire pour php 5+, non, aimer ou pas : c'est trop subjectif !

Discussions similaires

  1. parser fichier html avec C#.Net
    Par medchafik dans le forum C#
    Réponses: 5
    Dernier message: 02/09/2010, 14h58
  2. Réponses: 1
    Dernier message: 04/01/2010, 18h30
  3. parser un fichier HTML avec JAVA
    Par ouinih dans le forum EDI et Outils pour Java
    Réponses: 2
    Dernier message: 09/02/2009, 10h33
  4. Réponses: 2
    Dernier message: 13/01/2009, 21h26
  5. Parser un fichier HTML avec HtmlDocument
    Par Seth77 dans le forum C#
    Réponses: 2
    Dernier message: 13/08/2008, 07h52

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