What is the easiest way to use the HEAD command of HTTP in PHP?
head, http, php, protocols
Solution
As an alternative to curl you can use the http context options to set the request method to `HEAD`. Then open a (http wrapper) stream with these options and fetch the meta data.
$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);
see also: http://docs.php.net/stream_get_meta_data http://docs.php.net/context.http
Problem
I would like to send the HEAD command of the Hypertext Transfer Protocol to a server in PHP to retrieve the header, but not the content or a URL. How do I do this in an efficient way? The probably most common use-case is to check for dead web links. For this I only need the reply code of the HTTP request and not the page content. Getting web pages in PHP can be done easily using `file_get_contents("http://...")`, but for the purpose of checking links, this is really inefficient as it downloads the whole page content / image / whatever.