Abriendo un sockect() y lleyendo el código de error que te dé puedes decidir si está funcionando o no ese URL .. (200 sería OK, 404 no va .. etc ..)
Todos esos códigos los define el protocoolo HTTP/1.1 (si quieres verlo
www.rfc.net )
Tambien lo puedes ver con:
file_exists()
http://www.php.net/manual/es/function.file-exists.php
(ahí mismo en los comentarios de los usuarios tienes un ejemplo completo usando sockets que lee las cabeceras HTTP q devuelve a conectarte a el URL ..)
Y mas ejemplos (usando sockets u otras técnicas)
http://www.hotscripts.com/PHP/Script...Link_Checking/
Un saludo,