我正在运行以下命令并遇到异常:
$headers = get_headers(" http://www.moneysupermarket.com/mortgages/ ", 1);
如何处理此异常(在我的情况下,请忽略此 url,因为它会导致异常)。
我试过了:
- 试着抓
- 此链接中的代码:https ://stackoverflow.com/a/6184127/1486303
但是,我仍然会出现此错误(我想忽略它)。
谢谢!
我正在运行以下命令并遇到异常:
$headers = get_headers(" http://www.moneysupermarket.com/mortgages/ ", 1);
如何处理此异常(在我的情况下,请忽略此 url,因为它会导致异常)。
我试过了:
但是,我仍然会出现此错误(我想忽略它)。
谢谢!
新版本
同样,这不是问题的正确答案,但避免错误可以给出预期的结果。
get_headers 做一个没有代理的 HTTP GET,所以moneysupermarket.com不喜欢它,所以使用 ini_set 来设置请求中的默认用户代理,并且一切正常:
ini_set("user_agent","Mozilla custom agent");
$headers = get_headers("http://www.moneysupermarket.com/mortgages/", 1);
以前的
显然,如果请求格式不正确,moneysupermarket.com 会重置连接,请使用 cUrl 执行请求(取自 curl 手册页):
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.moneysupermarket.com/mortgages/");
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla custom agent");
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
没有例外。get_headers() 出错时返回 FALSE。虽然有一条警告消息,但这也不例外,因此无法被捕获。有关警告和其他错误,请参阅:http ://www.php.net/manual/en/function.set-error-handler.php