Le problème se produit uniquement avec un fichier lorsque j'essaie de faire une méthode DocumentDOM/SimpleXML, il semble donc que le problème est avec ce fichier. Aucune idée de ce que cela pourrait être.Erreur de page retournant PHP sur simplexml print_r
Si je fais ce qui suit:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
$xml = simplexml_import_dom($dom);
print_r($xml);
dans Chrome, je reçois une erreur "page non disponible". Dans Firefox, je n'ai rien.
Si je fais la même chose mais à un "test2.html", je reçois une impression comme prévu.
Si je tente la même chose, mais le faire de cette façon:
$file = "test1.html";
$data = file_get_contents($file)
$dom = DOMDocument::loadHTML($data);
$xml = simplexml_import_dom($dom);
print_r($xml);
Je reçois la même question.
Si je commente la ligne print_r, Chrome passe de la "Page indisponible" à vide.
J'ai changé les permissions en 777, au cas où ce serait un problème, pas de correctif.
J'ai essayé simplement de répercuter le contenu du HTML, pas de problème du tout.
Des indices quant aux raisons pour lesquelles a) Chrome le ferait, et b) pourquoi je ne reçois aucun résultat utilisable?
Mise à jour:
Si je mets: $ file = "test1.html"; $ dom = DOMDocument :: loadHTMLFile ($ fichier); if (! $ Dom) { echo "Aucune charge!"; } else { $ xml = simplexml_import_dom ($ dom); print_r ($ xml); }
Je reçois le même problème. Si je mets en:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
if(!$dom) {
echo "No Load!";
}
else {
echo "Load!";
}
Je reçois le "Load!" sortie, ce qui signifie que la méthode dom ne devrait pas être le problème (?)
Je vais essayer le même test exact avec le simplexml.
Update2:
Si je fais ceci:
Je reçois la même question. Si je mets:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
$xml = simplexml_import_dom($dom);
if(!$xml) {
echo "No Load!";
}
else {
echo "Load!";
}
je reçois "Load!" mais si je le fais:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
$xml = simplexml_import_dom($dom);
if(!$xml) {
echo "No Load!";
}
else {
echo "Load!";
print_r($xml);
}
Je reçois l'erreur. J'ai finalement remarqué que j'avais une option pour afficher l'erreur dans Chrome:
Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error.
Le fichier html gênant est 288KB. Cela pourrait-il être le problème? Si oui, comment pourrais-je m'y adapter?
Dernière mise à jour:
très étrange. Je peux utiliser des méthodes et des fonctions sur l'objet (comme simplexml ou domdocument), donc je peux faire des choses comme xpath pour supprimer ou analyser le html, etc. Dans certains cas (petits résultats), il peut renvoyer des résultats montrer toutes les envergures), il échoue de la même manière.
Donc, depuis le résultat final, je pense que s'inscrira dans ces paramètres, je devrais être d'accord (je suppose).
Mais toute vraie solution est la bienvenue.
Le rapport d'erreur est activé. En utilisant les conditions pour le show $ dom ou $ xml qu'ils chargent tous les deux (voir mises à jour), mais n'obtiennent toujours rien sur print_r. La taille du fichier 288K est-elle le problème? – Anthony