2012-03-22 17 views
2

我使用phpQuery解析網頁,但是我注意到,與無效的標記它的結果來替代phpQuery,在處理無效標記時不會崩潰?

PHP Fatal error: Uncaught exception 'Exception' with message 'Error loading XML markup'

的例子有問題的代碼的網頁頁面中使用時,它是:

<?xml version="1.0" encoding="iso-8859-2"?> 
<link href="http://example.com/?foo=bar&baz=quz" /> 

祝phpQuery會爲這樣的頁面返回false,但是很遺憾,它會導致即時的致命錯誤,從而阻止我對此做些什麼。

錯誤立即發生在初始化phpquery像phpQuery::newDocumentFile($page);

我真的很喜歡phpQuery,因爲它的工作原理是jQuery的,但我在尋找的是無效標記工作的替代解決方案。

回答

5

實際上,崩潰不是由於無效標記而導致的。由於您沒有發現無效標記拋出的異常,因此導致崩潰。

嘗試在一個try-catch像初始化:

try { 
    phpQuery::newDocumentFile($page); 
    //Process the page here 
} catch (Exception $e) { 
    //What do we do if any of that fails? 
} 

例外只能成爲致命錯誤,如果你不抓住他們。

+0

捕捉異常也是一個好方法。 – 2012-03-22 18:40:22

1

在傳遞給phpQuery之前,您可以先使用PHP來驗證XML。以下是關於如何通過PHP驗證XML的good article