Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/06/2010, 09:04
Annoying
 
Fecha de Ingreso: diciembre-2008
Ubicación: Vigo, Spain
Mensajes: 141
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: Comprobar y buscar todos los enlaces rotos de un URL...y que devuelva un m

Cita:
Iniciado por tonimito Ver Mensaje
Mmm...alguna idea más? donde iría este switch? Voy a investigar...la verdad es que estoy un poco lento hoy...
Código PHP:
Ver original
  1. <?php
  2. function hyperlinkextract($s1,$s2,$s){
  3.     $myarray=array();    
  4.     $s1=strtolower($s1);
  5.     $s2=strtolower($s2);  
  6.     $l1=strlen($s1);
  7.     $l2=strlen($s2);      
  8.     $scheck=strtolower($s);
  9.         do{ $pos1 = strpos($scheck,$s1);
  10.               if($pos1!==false){
  11.                 $pos2 = strpos(substr($scheck,$pos1+$l1),$s2);
  12.                 if($pos2!==false){  
  13.                     $myarray[]=substr($s,$pos1+$l1,$pos2);
  14.                       $s=substr($s,$pos1+$l1+$pos2+$l2);
  15.                       $scheck=strtolower($s);
  16.             }
  17.         }
  18.     } while (($pos1!==false)and($pos2!==false)); return $myarray;  
  19. }
  20.  
  21. function ComprobarEnlaces($EnlaceVAR){
  22.     $enlace = $EnlaceVAR;
  23.     $content = file_get_contents($enlace);
  24.     $myarray = hyperlinkextract("<a href=\"","\"",$content);
  25.     $switch=0;
  26.     foreach($myarray as $key => $url) {
  27.         $fp=@fopen($url,"r");
  28.         if($fp){
  29.              echo '';
  30.         }else if ($url == '#'){
  31.              echo '';
  32.         }else{
  33.              echo '<p></br>En: <a href="'.$enlace.'">'.$enlace.'</a></br>No funciona: <a href="'.$url.'">'.$url.'</a></p>';
  34.              $switch = 1;
  35.         }
  36.         @fclose($fp);
  37.     }
  38.     if($switch==0)
  39.           echo "<p>Todos los enlaces están correctos!</p>";
  40. }
  41.  
  42. ComprobarEnlaces("http://www.lawebquequieras.com"); /*AQUI LLAMAMOS AL ENLACE A COMPROBAR*/
  43. ?>

Algo así podría servir me parece.