请考虑以下事项:
$url = 'http://psyng.com/u/9716602b';
$headers = get_headers($url, 1);
print_r($headers);
由于域psyng.com无法解析,因此此代码会导致:
Warning: get_headers(): php_network_getaddresses: getaddrinfo failed:
No such host is known
然后脚本停止运行。有没有办法让脚本的其余部分保持运行 - 换句话说:捕获错误,并继续解决下一个URL?如下所示:
$url = 'http://psyng.com/u/9716602b';
$headers = get_headers($url, 1);
if ($headers == 'No such host is known') {
// nevermind, just move on to the next URL in the list...
}
else {
// resolve header stuff...
}
答案 0 :(得分:3)
脚本不应该停止运行,因为生成的消息只是一个警告。我自己测试了这个脚本,这就是我看到的行为。您可以在the documentation中看到get_headers()
在失败时会返回FALSE
,因此您的情况应该是
if ($headers === FALSE) {
// nevermind, just move on to the next URL in the list...
答案 1 :(得分:0)
函数get_headers返回一个布尔结果; print_r的目的是以人类可读的格式返回布尔值。
<?php
$url = 'http://psyng.com/u/9716602b';
$headers = get_headers($url, 1);
if ($headers === FALSE) { //Test for a boolean result.
// nevermind, just move on to the next URL in the list...
}
else {
// resolve header stuff...
}
?>