DocumentDOM / SimpleXMLメソッドを実行しようとすると、問題は1つのファイルでのみ発生するため、問題はそのファイルにあるようです。それが何であるか見当がつかない。
私が次のことをした場合:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
$xml = simplexml_import_dom($dom);
print_r($xml);
Chromeでは、「ページが利用できません」というエラーが表示されます。Firefoxでは何も得られません。
同じことを「test2.html」に対して行うと、期待どおりに印刷されます。
私が同じことを試みたが、このようにした場合:
$file = "test1.html";
$data = file_get_contents($file)
$dom = DOMDocument::loadHTML($data);
$xml = simplexml_import_dom($dom);
print_r($xml);
同じ問題が発生します。
print_r行をコメントアウトすると、Chromeは「ページが利用できません」から空白になります。
権限を777に変更しました。これが問題であった場合は、修正されません。
HTMLの内容を単純にエコーアウトしてみましたが、まったく問題ありませんでした。
a)Chromeがそれを行う理由、およびb)使用可能な結果が得られない理由に関する手がかりはありますか?
アップデート:
私が入れた場合:$ file = "test1.html"; $ dom = DOMDocument :: loadHTMLFile($ file); if(!$ dom){echo "No Load!"; } else {$ xml = simplexml_import_dom($ dom); print_r($ xml); }
同じ問題が発生します。私が入れた場合:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
if(!$dom) {
echo "No Load!";
}
else {
echo "Load!";
}
「ロード!」出力、つまりdomメソッドが問題になることはないはずです(?)
simplexmlを使用して同じ正確なテストを試してみます。
Update2:
私がこれを行う場合:
同じ問題が発生します。私が入れた場合:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
$xml = simplexml_import_dom($dom);
if(!$xml) {
echo "No Load!";
}
else {
echo "Load!";
}
「ロード!」しかし、私がそうする場合:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
$xml = simplexml_import_dom($dom);
if(!$xml) {
echo "No Load!";
}
else {
echo "Load!";
print_r($xml);
}
エラーが発生します。Chromeでエラーを表示するオプションがあることにようやく気づきました。
Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error.
面倒なhtmlファイルは288Kbです。それが問題になるのでしょうか?もしそうなら、私はそれをどのように調整しますか?
最後の更新:
非常に奇妙な。オブジェクトのメソッドと関数を(simplexmlまたはdomdocumentとして)使用できるので、xpathなどを実行してhtmlを削除または解析できます。場合によっては(小さな結果)、結果をエコーアウトできますが、大きなもの(すべてのスパンを表示)、同じように失敗します。
したがって、最終結果から、これらのパラメーターに適合すると思います。大丈夫である必要があります(私は推測します)。
しかし、実際の解決策は大歓迎です。