Si no estoy equivocada ninguno de los php funciones incorporadas devuelven el estado HTTP de una URL remota, por lo que la mejor opción sería utilizar sockets para abrir una conexión con el servidor, enviar una solicitud y analizar el estado de respuesta:
seudo código:
parse url => $host, $port, $path
$http_request = "GET $path HTTP/1.0\nHhost: $host\n\n";
$fp = fsockopen($host, $port, $errno, $errstr, $timeout), check for any errors
fwrite($fp, $request)
while (!feof($fp)) {
$headers .= fgets($fp, 4096);
$status = <parse $headers >
if (<status read>)
break;
}
fclose($fp)
Otra opción es utilizar una ya construir la clase de cliente HTTP en PHP que puede devolver los encabezados sin recuperar ni el contenido de la página completa, no debe ser una fuente abierta de unos pocos clases disponibles en la red ...
Creo que es: . "Anfitrión: $ host \ r \ n \" (es decir, no% anfitrión) Pero aparte de eso que va a funcionar muy bien. –
Gracias por detectar a Sean. Voy a corregir ese pequeño error tipográfico. –
Debo señalar que no todos los servidores web admiten o habilitan solicitudes HEAD, incluso si la posibilidad de golpear uno es casi nula ... –