当我尝试使用简单的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请求错误,则需要显示问题。
答案 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获取网址并处理错误响应。