如何在简单的html dom中处理http请求失败

时间:2017-03-03 17:12:44

标签: php simple-html-dom

当我尝试使用简单的html DOM 时使用说$url从某个网站抓取数据。几天之后链接变得过时,我得到一个说法http请求失败。而不是显示该错误。我想显示我想要的其他东西。

例如,这里是代码:

<?
$html=file_get_html($url);
$title=$html->find("stuff that I want to extract",0)->plaintext;
if($title)
{
echo $title;

}
else{
echo 'problem';
}

 ?>

在上面的示例中,只有在找不到该数据时才会显示问题,但如果我收到http请求错误,则需要显示问题。

1 个答案:

答案 0 :(得分:1)

error_reporting level是一个有效的解决方案。这可能会抛出异常,您可以使用它来处理错误。 file_get_html可能会产生警告的原因有很多,PHP的手册本身也建议降低error_reporting。

或者可能会对你有所帮助:

$html = file_get_html($url) or die('this is not a valid url');

如果在获取数据时出现任何问题,则file_get_html会返回false。

$html = file_get_html($url);
if ($html) {
 // code
} else {
 // error
}

使用Try-Catch

try {
    $html = file_get_html(trim($url)); 
} catch (Exception $e) {
    // handle error here
}

建议:使用CURL获取网址并处理错误响应。