1

このサンプルコードをご覧ください。

function http_response($url)
{
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, TRUE);
        curl_setopt($ch, CURLOPT_NOBODY, TRUE); // remove body
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $head = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        echo $httpCode ;
}

このコードは、指定されたURLのhttpCodeを出力します。いくつか質問があります。

  1. ここでいくつかのsetopt()行を削除しても、httpCodeを取得できますか?
  2. 複数のURLを同時にチェックしたい場合はどうなりますか?それを行うためにコードを変更できますか?
  3. cURLとは異なるライブラリを使用して、同じ機能をより簡単な方法で実行できますか?

ありがとう :)

4

2 に答える 2

1
  • CURLOPT_HEADER削除しCURLOPT_NOBODYても同じ結果が得られるはずです。
  • あなたはこのようにそれをすることができます:

    $urls = array(
        'http://google.com',
        'http://facebook.com'
    );
    
    $status = array();
    
    foreach($urls as $url){
        $status[$url] = http_response($url);
    }
    

    この後試してみるprint_r($status);と、結果が表示されます。

  • file_get_contents詳細については、とを使用してこれを行うことができます。http$http_response_header : //www.php.net/manual/en/reserved.variables.httpresponseheader.phpただし、とにかくcURLを使用することをお勧めします。

于 2011-04-26T21:55:23.487 に答える
1

*2。複数のURLをチェックするには、この関数をループで使用する必要があります。任意のプログラミング言語で、サーバーからの1つの応答=1そのサーバーへの接続。1つの関数を使用して複数のサーバーから応答を取得する場合は、いつでも配列を関数に渡して、関数内でループを実行できます。

*3。あなたはこの方法を試すことができます:

function get_contents() {
  file_get_contents("http://example.com");
  var_dump($http_response_header);
}


get_contents();
于 2011-04-26T22:03:01.137 に答える