Получение нескольких кодов ответов http с использованием cURL? - PullRequest
1 голос
/ 27 апреля 2011

Пожалуйста, посмотрите на этот пример кода:

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 данного URL. У меня есть пара вопросов:

  1. Могу ли я избавиться от некоторых строк setopt () здесь и по-прежнему получать httpCode?
  2. А что если я хочу проверить несколько URL-адресов одновременно? Могу ли я изменить код, чтобы сделать это?
  3. Могу ли я выполнить те же функции более простым способом, используя библиотеки, отличные от cURL?

Спасибо:)

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

* 2.чтобы проверить несколько URL, вы должны использовать эту функцию в цикле, на любом языке программирования 1 ответ от соединения server = 1 с этим сервером.Если вы хотите использовать функцию 1 для получения ответов от нескольких серверов, вы всегда можете передать массив функции и выполнить цикл внутри функции

* 3.Вы можете попробовать так:

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


get_contents();
1 голос
/ 27 апреля 2011
  • Вы сможете удалить 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_response_header, чтобы узнать больше: http://www.php.net/manual/en/reserved.variables.httpresponseheader.php Однако я все равно рекомендовал бы использовать cURL.

...