當我嘗試執行DocumentDOM/SimpleXML方法時,問題只發生在一個文件上,所以它看起來像是該文件的問題。不知道它可能是什麼。在simplexml上返回頁面錯誤print_r
如果我做到以下幾點:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
$xml = simplexml_import_dom($dom);
print_r($xml);
在Chrome
,我得到一個 「頁面Unavailable」 錯誤。在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將從「Page Unavailable」變爲空白。
我將權限更改爲777,萬一出現問題,無法修復。
我試圖簡單地迴應html的內容,根本沒有問題。
爲什麼a)Chrome會這樣做的任何線索,以及b)爲什麼我沒有得到任何可用的結果?
更新:
如果我把在:$ 文件= 「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!";
}
我得到「Load!」輸出,這意味着dom方法不應該是問題(?)
我會嘗試與simplexml相同的確切測試。
UPDATE2:
如果我這樣做:
我得到了同樣的問題。如果我輸入:
$file = "test1.html";
$dom = DOMDocument::loadHTMLFile($file);
$xml = simplexml_import_dom($dom);
if(!$xml) {
echo "No Load!";
}
else {
echo "Load!";
}
我得到「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等。在某些情況下(小結果)它可以回顯結果,但對於大的東西(顯示所有跨度),它以相同的方式失敗。所以,自從最終的結果,我認爲將適合這些參數,我應該沒問題(我猜)。
但是任何真正的解決方案都非常受歡迎。
報告錯誤。使用條件來顯示它們都加載的$ dom或$ xml顯示(請參閱更新),但print_r仍然沒有任何結果。 288K文件大小是否是問題? – Anthony 2009-06-25 07:48:13