php:HTTP标头的不一致行为

时间:2013-03-04 23:37:00

标签: php url http-headers http-status-code-404 httpresponse

正在测试同一域上的大量链接,以查看它们是否存在。我使用以下代码:

function get_http_response_code($url)
{
    $headers = get_headers($url);
    return substr($headers[0], 9, 3);
}

function getURLs()
{
    foreach($allResults as $result)
    {
    $tempURL = 'http://www.doma.in/foo/'.$result.'/bar';
    if(get_http_response_code($tempURL) != "404" && get_http_response_code($tempURL) != "500")
    {
        $URLs[] = $tempURL;
    }
    else
    {
        echo $tempURL.' could not be reached<br />';
    }
    return $URLs;
}
$URLs = getURLs();

问题是,在存在的数百个中,$URLs数组包含不存在的URL(404);有时两个,有时四个,但每次产生HTTP / 1.0 404 Not Found错误。为何如此差异?我应该设置超时吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

据我所知,你的代码中的问题是变量$url错误 试试这个。

...
foreach($allResults as $result)
{
    $tempURL = 'http://www.doma.in/foo/'.$result['url'].'/bar';
...

$url已更改为$result