Ver Mensaje Individual
  #11 (permalink)  
Antiguo 13/01/2003, 22:57
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para la optimización del código .. como te mencioné desde un principio .. usando preg_match_all():

Código PHP:
<?
$url 
"http://www.php.net/manual/es/";
$html Implode(""File($url));

preg_match_all("/<a[[:space:]]+href[[:space:]]*=[[:space:]]*[\"']{0,1}([^\"'> ]+)/i",$html,$links_url,PREG_SET_ORDER);

preg_match_all("|>([^<]*)</a|i",$html,$links_descripcion,PREG_SET_ORDER);

for (
$i=0;$i<count($links_url);$i++){
echo 
"<A HREF=\"".$links_url[$i][1]."\">".$links_descripcion[$i][1]."</A><BR>\n";
}
echo 
"<br>total links leidos: ".$i;

?>
En el ejemplo se leen 242 links extraidos entre HTML común ... lo procesó en: 0.0988030433655 segundos aprox. en mi PC "servidor" AMD K6-2 a 350MHz de la época xD...
(abriendo el fichero .. con mi kka de conexion modem 56K acceso comuntado corriente: 5.03578197956 segundos aprox.)

.. No es perfecta todavía la expresion regular .. habria q refinarla .. pero funciona bastan bien .. (por si acaso .. el código no es mio .. por lo menos las exp. regulares .. las saque de google .. aqui y allá xD).

---------------------

Sobre lo de comprobar si un URL es valido o no .. se hace via sockets conectando por HTTP directo .. y leyendo el error q devuelve (un 500 o un 404 por ejemplo algo distinto al 200 creo q es el q fué correcta la conexión) ..

Aquí tienes algunos:
http://www.hotscripts.com/PHP/Script...Link_Checking/
(para q te fijes en el código) ...

Un saludo,

Última edición por Cluster; 13/01/2003 a las 22:59