Me gustaría enviar el comando HEAD del Protocolo de transferencia de hipertexto a un servidor en PHP para recuperar el encabezado, pero no el contenido o una URL. ¿Cómo hago esto de una manera eficiente?¿Cuál es la forma más fácil de usar el comando HEAD de HTTP en PHP?
El caso de uso probablemente más común es comprobar si hay enlaces web muertos. Para esto solo necesito el código de respuesta de la solicitud HTTP y no el contenido de la página. Obtener páginas web en PHP se puede hacer fácilmente usando file_get_contents("http://...")
, pero con el propósito de verificar enlaces, esto es realmente ineficiente ya que descarga toda la página contenido/imagen/lo que sea.
Prefiero esta solución que las que usan curl, porque me gusta usar las funciones incorporadas. ¿Tal vez alguien más puede comentar sobre el desempeño de cada posibilidad? – fuenfundachtzig
Tenga en cuenta que esto generará un error para los códigos de respuesta '401', mientras que curl le proporciona la respuesta real. –
'stream_context_create()' se puede usar también con 'file_get_contents()'. Tal vez 'get_headers()' esté mucho mejor combinado con 'stream_context_set_default()' al método de la solicitud al
HEAD
. Consulte http://php.net/manual/es/function.get-headers.php – cybmeta