Puedes hacer una conexión por sockets y esperar el mensaje (las caebceras HTTP) con la función que te describe Mickel o con fsockopen() y funciones afines.
También puedes intentar un fopen() al URL indicado .. y .. si hay error ya sabes que no está dispoble .. Esto sería " a lo bruto" pero funciona
Código PHP:
if (@fopen("tu url",r)){
echo "hay problemas al acceder al URL tal ...";
}
Se usa el @ delante de fopen() para evitar mostrar los mensajes de error que PHP va arrojar si no puede abrir el archivo y así totalmente personalizar el mensaje de error o acción a tener que hacer.
Por eso decía que este método es "a lo bruto" .. pues el error se provoca (aparecerá en log's y demás) pero con la @ lo ocultamos (pero igual está).
Un saludo,