使用cURL获取多个http响应代码?

时间:2011-04-26 21:01:35

标签: php curl http-response-codes

请看一下这个示例代码:

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 ;
}

此代码将打印给定网址的httpCode。我有几个问题:

  1. 我可以在这里摆脱一些setopt()行并仍然获得httpCode吗?
  2. 如果我想同时检查多个网址怎么样?我可以修改代码吗?
  3. 我可以使用不同于cURL的库以更简单的方式执行相同的功能吗?
  4. 谢谢:)

2 个答案:

答案 0 :(得分:1)

  • 您应该可以删除CURLOPT_HEADERCURLOPT_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_response_header执行此操作,以了解详情:http://www.php.net/manual/en/reserved.variables.httpresponseheader.php无论如何,我建议您使用cURL。

答案 1 :(得分:1)

* 2。检查多个url你必须在循环中使用这个函数,在任何编程语言1响应来自server = 1连接到该服务器。如果你想使用1个函数从多个服务器获取响应,你总是可以将一个数组传递给函数并在函数内部进行循环

* 3。你可以这样试试:

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


get_contents();