2

考虑以下:

$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...
}
4

2 回答 2

3

该脚本不应停止运行,因为产生的消息只是一个警告。我自己测试了这个脚本,这就是我看到的行为。您可以在文档中看到get_headers()FALSE在失败时返回,因此您的情况实际上应该是

if ($headers === FALSE) {
    // nevermind, just move on to the next URL in the list...
于 2012-04-29T13:23:30.293 回答
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...
}
?>
于 2012-04-29T14:00:43.223 回答