0

同じドメインで多くのリンクをテストして、それらが存在するかどうかを確認しています。次のコードを使用しています。

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();

問題は、存在する数百の URL の中に$URLs存在しない URL が配列に含まれていることです (404)。場合によっては 2 つ、場合によっては 4 つですが、毎回 HTTP/1.0 404 Not Found エラーが生成されます。なぜそのような差異があるのですか?設定する必要があるタイムアウトはありますか? どんな助けでも大歓迎です。

4

1 に答える 1

0

あなたのコードから私が理解しているように、問題は変数の間違いです$url 。これを試してください。

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

$urlに変更$result

于 2013-03-04T23:45:31.377 に答える