Каков самый простой способ использования команды HEAD HTTP в PHP?

Я хотел бы отправить команду HEAD протокола передачи гипертекста на сервер в PHP для получения заголовка, но не содержимого или URL-адреса. Как я могу сделать это эффективно?

Вероятно, наиболее распространенным вариантом использования является проверка мертвых веб-ссылок. Для этого мне нужен только код ответа HTTP-запроса, а не контент страницы. Получение веб-страниц в PHP можно легко с помощью file_get_contents("http://...") , но для проверки ссылок это действительно неэффективно, так как оно загружает весь контент / изображение / все.

    В качестве альтернативы завитка вы можете использовать параметры контекста http для установки метода запроса в HEAD . Затем откройте (http wrapper) поток с этими параметрами и извлеките метаданные.

     $context = stream_context_create(array('http' =>array('method'=>'HEAD'))); $fd = fopen('http://php.net', 'rb', false, $context); var_dump(stream_get_meta_data($fd)); fclose($fd); 

    смотрите также:
    http://docs.php.net/stream_get_meta_data
    http://docs.php.net/context.http

    Вы можете сделать это аккуратно с помощью cURL :

     <?php // create a new cURL resource $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); // This changes the request method to HEAD curl_setopt($ch, CURLOPT_NOBODY, true); // grab URL and pass it to the browser curl_exec($ch); // Edit: Fetch the HTTP-code (cred: @GZipp) $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // close cURL resource, and free up system resources curl_close($ch); 

    Даже проще, чем завиток – просто используйте get_headers() PHP get_headers() которая возвращает массив всей информации заголовка для любого указанного вами URL-адреса. И еще один реальный простой способ проверить наличие удаленного файла – использовать fopen() и попытаться открыть URL-адрес в режиме чтения (для этого вам нужно включить allow_url_fopen).

    Просто ознакомьтесь с руководством по PHP для этих функций, все там.

    Похоже, груша имеет это:

    http://pear.php.net/manual/en/package.http.http.head.php