处理无效标记时不会崩溃的phpQuery的替代方案?

时间:2012-03-22 18:28:43

标签: php regex screen-scraping

我使用phpQuery来解析页面但是我注意到当它与带有无效标记的页面一起使用时,它会导致

  

PHP致命错误:未捕获的异常'异常',消息为'错误   加载XML标记'

页面中违规代码的示例是:

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

我希望phpQuery会为这些页面返回false,但遗憾的是它导致了即时的致命错误,导致我无法对此做些什么。

在初始化像phpQuery::newDocumentFile($page);

这样的phpquery时会立即发生错误

我非常喜欢phpQuery,因为它的工作方式与jQuery类似,但我正在寻找一种可用于无效标记的替代解决方案。

2 个答案:

答案 0 :(得分:5)

实际上,由于标记无效而导致崩溃。由于您没有捕获无效标记抛出的异常,因此导致崩溃。

尝试在try-catch中初始化,如:

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

如果你没有抓住它们,例外只会成为致命的错误。

答案 1 :(得分:1)

在传递给phpQuery之前,您可以先使用PHP来验证XML。关于如何通过PHP验证XML,这是一个非常good article