Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/06/2010, 08:36
tonimito
 
Fecha de Ingreso: diciembre-2003
Mensajes: 157
Antigüedad: 20 años, 11 meses
Puntos: 1
Comprobar y buscar todos los enlaces rotos de un URL...y que devuelva un mensage!

Hola amigos,

Leyendo de aquí y de allá, he conseguido hacer este script que lee el URL que le indiques e imprime los enlaces rotos que contenga susodicho URL:

Código PHP:
<?php
function hyperlinkextract($s1,$s2,$s){
    
$myarray=array();    
    
$s1=strtolower($s1);
    
$s2=strtolower($s2); 
    
$l1=strlen($s1);
    
$l2=strlen($s2);     
    
$scheck=strtolower($s);
        do{ 
$pos1 strpos($scheck,$s1);
              if(
$pos1!==false){
                
$pos2 strpos(substr($scheck,$pos1+$l1),$s2);
                if(
$pos2!==false){ 
                    
$myarray[]=substr($s,$pos1+$l1,$pos2);
                      
$s=substr($s,$pos1+$l1+$pos2+$l2);
                      
$scheck=strtolower($s);
            }
        }
    } while ((
$pos1!==false)and($pos2!==false)); return $myarray
}

function 
ComprobarEnlaces($EnlaceVAR){
    
$enlace $EnlaceVAR;
    
$content file_get_contents($enlace);
    
$myarray hyperlinkextract("<a href=\"","\"",$content);
    
    foreach(
$myarray as $key => $url) {
        
$fp=@fopen($url,"r");
        if(
$fp){
             echo 
'';
        }else if (
$url == '#'){
             echo 
'';
        }else{
             echo 
'<p></br>En: <a href="'.$enlace.'">'.$enlace.'</a></br>No funciona: <a href="'.$url.'">'.$url.'</a></p>';
        }
        @
fclose($fp);
    }
}

ComprobarEnlaces("http://www.lawebquequieras.com"); /*AQUI LLAMAMOS AL ENLACE A COMPROBAR*/
?>
Por cierto, el código sólo funciona con enlaces absolutos (tipo <a href="http://www.laweb.com/bla/bla..."</a>).

El caso es que me gustaría que si el URL tiene todos los enlaces válidos, me devolviese un mensage tipo "<p>Todos los enlaces están correctos!</p>",
y no consigo hacerlo, ¿alguna ayuda o idea?

Gracias!