PHP DOMDocument :: loadHTML () [domdocument.loadhtml]: htmlParseEntityRef: aucun nom dans l'entité
Que j'essaie d'obtenir le "lien" éléments à partir de certaines pages web. Je ne peux pas comprendre ce que je fais mal. J'obtiens l'erreur suivante:
Gravité: Avertissement
Message: DOMDocument::loadHTML() [domdocument.loadhtml]:
htmlParseEntityRef: aucun nom de l'Entité, en ligne: 536Nom de fichier: controllers/test.php
Numéro De Ligne: 34
La ligne 34 est le suivant dans le code:
$dom->loadHTML($html);
mon code:
$url = "http://www.amazon.com/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
if($html = curl_exec($ch)){
//parse the html into a DOMDocument
$dom = new DOMDocument();
$dom->recover = true;
$dom->strictErrorChecking = false;
$dom->loadHTML($html);
$hrefs = $dom->getElementsByTagName('a');
echo "<pre>";
print_r($hrefs);
echo "</pre>";
curl_close($ch);
}else{
echo "The website could not be reached.";
}
source d'informationauteur David
Vous devez vous connecter pour publier un commentaire.
Cela signifie que certains des code HTML n'est pas valide.
C'est juste un avertissement, pas une erreur. Votre script est toujours le traiter. Pour supprimer l'avertissement
Ou vous pouvez simplement supprimer complètement l'avertissement en faisant
Cela peut être causé par un voyou
&
symbole qui est immédiatement remplacé par une bonne balise. Sinon, vous recevez un manque;
erreur. Voir: Warning: DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' dans l'Entité,.La solution est de remplacer le
&
symbole avec&
ou si vous devez avoir
&
tel qu'il est, peut être vous pouvez mettre dans:<![CDATA[
-]]>
Le HTML est mal formé. Si elle est formée assez mal le chargement du code HTML dans le Document DOM pourrait même échouer. Si loadHTML ne fonctionne pas alors supprimant les erreurs est inutile. Je vous suggère d'utiliser un outil comme le HTML Tidy pour "nettoyer" le mal formé HTML si vous ne parvenez pas à charger le code HTML dans le DOM.
HTML Tidy peut être trouvé ici http://www.htacg.org/tidy-html5/