[PHP5] Parser un document html
Fermé
canarder
Messages postés
1714
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
-
14 mai 2011 à 19:14
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 - 5 juin 2011 à 17:48
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 - 5 juin 2011 à 17:48
A voir également:
- [PHP5] Parser un document html
- Comment reduire la taille d'un document - Guide
- Signer un document word - Guide
- Comment ouvrir un document docx - Guide
- Editeur html - Télécharger - HTML
- Comment supprimer une page dans un document word - Guide
5 réponses
canarder
Messages postés
1714
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
355
15 mai 2011 à 05:12
15 mai 2011 à 05:12
J'ai toujours l'impression que le php xml n'est pas vraiment facilement aidable quand je suis sûr ce forum. je vais essayer sur un autre (developpez) pour ces questions... demain.
Giorgiolino
Messages postés
253
Date d'inscription
vendredi 15 mai 2009
Statut
Contributeur
Dernière intervention
2 mars 2015
52
15 mai 2011 à 08:55
15 mai 2011 à 08:55
Bonjour,
parser un document html comme un document xml
Dès cette phrase tu donne déjà l'explication de ton problème.
Un document html n'est pas un document xml. Pourquoi utilises-tu une méthode qui n'êst pas adaptée pour t'étonner ensuite que cela ne fonctionne pas ?
La seule exception concerne les document XHTML qui peuvent être taités comme du XML. Mais encore faut-il être sûr que ton document soit du XHTML valide.
Tout ceci est d'autant plus étrange que l'objet DOMDOcument te fournit des méthodes telles que loadHTML ou loadHTMLFile qui te permettent de traiter du html.
plus d'infos --> https://www.php.net/manual/fr/class.domdocument.php
Sauf que j'obtiens plein d'erreurs (aucunes avec un xml).
--> Ben justement. Voir point précédent.
parser un document html comme un document xml
Dès cette phrase tu donne déjà l'explication de ton problème.
Un document html n'est pas un document xml. Pourquoi utilises-tu une méthode qui n'êst pas adaptée pour t'étonner ensuite que cela ne fonctionne pas ?
La seule exception concerne les document XHTML qui peuvent être taités comme du XML. Mais encore faut-il être sûr que ton document soit du XHTML valide.
Tout ceci est d'autant plus étrange que l'objet DOMDOcument te fournit des méthodes telles que loadHTML ou loadHTMLFile qui te permettent de traiter du html.
plus d'infos --> https://www.php.net/manual/fr/class.domdocument.php
Sauf que j'obtiens plein d'erreurs (aucunes avec un xml).
--> Ben justement. Voir point précédent.
canarder
Messages postés
1714
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
355
Modifié par canarder le 15/05/2011 à 11:15
Modifié par canarder le 15/05/2011 à 11:15
oui j'avais déjà vu quelque part. merci je vais tester et je mettrais la méthode (si elle change).
arf wamp démarre pas des fois c'est bizarre ....
arf wamp démarre pas des fois c'est bizarre ....
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 340
16 mai 2011 à 09:53
16 mai 2011 à 09:53
Bonjour,
Il y a plusieurs pistes possibles, mais je ne les ai pas expérimenté.
1) la piste Tidy, c'est un outil qui valide le code HTML et il existe une extension PHP:
https://www.php.net/manual/fr/book.tidy.php
2) la piste Google CHROME
CHROME est le navigateur de Google. Il est possible d'accéder au DOM d'une page HTML - mais pas en PHP -. Google CHROME remet en forme certains éléments non conformes à XML.
Par exemple, si vous faites
Chrome va reformater le code dans son environnement:
CHROME intègre un analyseur de document HTMKL similaire à Firebug qui montre le code corrigé.
Je pense - mais à confirmer - qu'il doit être possible de récupérer ce code corrigé pour analyse. Et ce code HTML passera sans encombre une analyse XML.
Cdlt
Il y a plusieurs pistes possibles, mais je ne les ai pas expérimenté.
1) la piste Tidy, c'est un outil qui valide le code HTML et il existe une extension PHP:
https://www.php.net/manual/fr/book.tidy.php
2) la piste Google CHROME
CHROME est le navigateur de Google. Il est possible d'accéder au DOM d'une page HTML - mais pas en PHP -. Google CHROME remet en forme certains éléments non conformes à XML.
Par exemple, si vous faites
<table><tr><td>test</table>
Chrome va reformater le code dans son environnement:
<table><tr><td>test</td></tr></table>
CHROME intègre un analyseur de document HTMKL similaire à Firebug qui montre le code corrigé.
Je pense - mais à confirmer - qu'il doit être possible de récupérer ce code corrigé pour analyse. Et ce code HTML passera sans encombre une analyse XML.
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
canarder
Messages postés
1714
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
355
5 juin 2011 à 17:48
5 juin 2011 à 17:48
1- Je bosse en PHP.
2- Firebug sur Firefox est mieux que Google Chrome, en plus on peut utiliser Greasemonkey pour modifier l'arbre DOM.
Avec loadHTMLFile, j'ai plein d'erreur. Pourtant mon code fonctionne.
Un petit erreor_reporting(0); ... Sauf que j'aimerais bien régler ces erreurs.
2- Firebug sur Firefox est mieux que Google Chrome, en plus on peut utiliser Greasemonkey pour modifier l'arbre DOM.
Avec loadHTMLFile, j'ai plein d'erreur. Pourtant mon code fonctionne.
Un petit erreor_reporting(0); ... Sauf que j'aimerais bien régler ces erreurs.
<?php $video = isset($_GET['v']) ? $_GET['v'] : "kvDMlk3kSYg"; $html = "https://www.youtube.com/".$video; $dom = new DOMDocument(); $dom->loadHTMLFile($html); $meta = $dom->getElementsByTagName("meta"); foreach ($meta as $title){ if($title->getAttribute("name")=="title"){ $title = $title->getAttribute("content"); break; } } ?> <p> <a href="http://youtu.be/<?php echo $video; ?>"> <img src="http://i.ytimg.com/vi/<?php echo $video; ?>/default.jpg" style="border:0px;text-align:left;" title="<?php echo $title; ?>" alt="Video image" /><br /> <b><?php echo $title; ?></b> </a> </p>