這與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