tal como lo haces siempre te respondera , pues el servidor siempre responde a menos que no se abra el socket,
La logica del script es la siguiente:
envia una pregunta al servidor, sobre un archivo.
el servidor le responde con una serie de codigos , las cabeceras
estas cabeceras se analizan con los eregis y se guardan en el arrray $contesta, luego tu tienes de sacar estas respuestas y procesarlas con mas codigo por ejemplo con if()
por eso te mostraba el ejemplo
te dejo todo otra vez a ve si no se fastidia con el foro
<?
function parametros($entrada)
{
$ArrayUrl = parse_url($entrada);
$port=$ArrayUrl['port'];
$host=$ArrayUrl['host'];
$path=$ArrayUrl['path'];
if (!$port) $port = "80";
if ($port != "80") $port = $port;
$return['port']=$port;
$return['host']=$host;
$return['path']=$path;
return $return;
}
function ValidarVinculos($vinculo)
{
$request="";
$urlArray= parametros($vinculo);
$sock = @fsockopen($urlArray['host'], $urlArray['port']);
if (!$sock) $contesta['code'] = "No responde";
else {
$request .= "HEAD $urlArray[path] HTTP/1.1\r\n";
$request .= "User-Agent: Valid link (
http://centropromoweb.com)\r\n";
$request .= "Host: $urlArray[host]\r\nConnection: close\r\n";
$request .= "Connection: close\r\n\r\n";
fputs($sock, $request);
while($str = fgets($sock, 128)) {
if (eregi("^http/[0-9]+.[0-9]+ ([0-9]{3}) [a-z ]*", $str)) $contesta['code'] = trim(eregi_replace("^http/[0-9]+.[0-9]+ ([0-9]{3}) [a-z ]*", "\\1", $str));
if (eregi("^Content-Type: ", $str)) $contesta['contentType'] = trim(eregi_replace("^Content-Type: ", "", $str));
if (eregi("text/html", $str)) $contesta['contentType'] = "text/html";
if (eregi("^Content-Length: ", $str)) $contesta['peso'] = trim(eregi_replace("^Content-Length: ", "", $str));
$contesta[]=$str;
}
}
return $contesta;
}
$vinculo="http://centropromoweb.com/index.php";
$var=ValidarVinculos($vinculo);
if($var['code'] != 200) echo "<li> este ".$vinculo." arroja el siguiente codigo de problema ".$var['code'] ;
else echo "este vinculo es correcto ".$vinculo;
echo "<pre>";
print_r($var);
echo "</pre>";
?>
si lo ejecutas tal cual , veras las cabeceras que manda el servidor
en el caso de que el archivo no este , pues te manda un 404 not found
prueba a ver,