habra la forma de detectar links rotos con una sentencia IF ????
<html><center><iframe src="http://www.ladodos.com/firma/firma.php" width=500 height=150></iframe></center></html>
| |||
Re: links rotos Bueno una forma de hacerlo es usando la funcion fopen o fsockopen. aqui te agreago un ejemplo usando la primera forma:
Código:
Toma como base este ejemplo ya que la consulta que hace es buscando el error 404, pero puede haber condiones en lsa que no se cumpla esa regla asi que puedes mejorarlo de acuerdo a tus necesidades.<? if(empty($pagina)){ echo "Introdusca una direccion en la forma http://dominio/<br>\n"; echo "Note el \"/\" de finalizacion del url<br>\n"; echo "Ejemplos validos: http://www.php.net/,http://www.php.net/manual<br>\n"; echo " <form action=\"$PHP_SELF\" method=\"post\"> <input type=\"text\" name=\"pagina\" value=\"http://\"> <input type=\"submit\" name=\"validar\" value=\"validar\"> </form>"; } function validarURL($campo){ //cotejamos el dominio a verificar $patron ="/^http:\/\/([\d\w-\.]+)\/.*$/"; if(preg_match($patron,$campo,$url)){ //verificamos que el domino exista if(checkdnsrr($url[1],"A") || checkdnsrr($url[1],"CNAME")){ /*verificamos que el recurso este disponible*/ if($fp = @fopen($campo,"r")){ while (!feof ($fp)) { $buffer = fgets($fp,4096); if(preg_match("/404/",$buffer)){ echo "$campo no esta disponible\n"; exit(); } } fclose ($fp); echo "<a href=\"$campo\">$campo</a><br>\n"; }else{ echo "$campo no esta disponible<br>\n";} }else{ echo "El dominio $url[1] no existe";} }else{ echo "Verifique si su entrada es correcta";} } validarURL($pagina); ?> Saludos. |
| ||||
Re: links rotos intente probarlo localmente y me dio este error: Warning: checkdnsrr() is not supported in this PHP build in c:\htdocs\public_html\links.php on line 18 Warning: checkdnsrr() is not supported in this PHP build in c:\htdocs\public_html\links.php on line 19 El dominio www.forosdelweb.com no existe donde 18 y 19 es: 18 if(checkdnsrr($url[1],"A") || 19 checkdnsrr($url[1],"CNAME")){ alguna otra idea?? <html><center><iframe src="http://www.ladodos.com/firma/firma.php" width=500 height=150></iframe></center></html> |
| |||
Re: links rotos Bueno resulta que las funcion checkdnsrr no esta implementada en la plataforma de windows necesitaras probarla en el servidor en el que estas hospedando tu pagina. Saludos. |