这与Simple_HTML_DOM
问题的一部分... file_get_html()
总是返回一个有效的对象,无论是否加载失败或没有。创建你自己的实例也没有帮助...没有实际的方法知道你的文件是否正确解析。
至于找出如果你真的在你的结果<p>
元素:
$pTags = $html->find('p');
if(empty($pTags)) {
echo 'Cannot find p tag';
} else {
foreach($pTags as $element) {
echo $element;
}
}
总体来说,我会建议下探Simple_HTML_DOM
和你的代码迁移到phpQuery
,而不是(在加方,phpQuery
不做它自己的解析,它只是PHP的DOMDocument类的包装)。该API更精简,并让您知道解析是否成功。
try {
$html = phpQuery::newDocument($sourceCode);
$pTags = $html->find('p');
if(empty($pTags)) {
echo 'Cannot find p tag';
} else {
foreach($pTags as $element) {
$element = pq($element); // Wrap raw DOMNode in phpQuery object instance;
echo $element->html();
}
}
} catch(Exception $ex) {
echo $ex->getMessage();
}
只是一个侧面说明(maniators答案似乎就好了!)。我对simple_html_dom的经验是,使用xpath通常会更好。 – 2011-03-08 19:41:47
无论文件加载/是否正确解析,'file_get_html()'都会返回一个有效的'Simple_HTML_DOM'对象。因此,@ maniator的答案是不正确的。错误消息将永远不会出现。 – 2011-03-08 19:59:04