En esta ocasión vamos a simplificar el método ya que utilizaremos para ello la clase DOMDocument.
La función que nos va a descargar y leer las etiquetas de tipo enlace será esta:
function getUrls( $url ){ $doc = new DOMDocument; $doc ->preserveWhiteSpace = false; // cargamos la url @ $doc ->loadHTMLFile( $url ); // buscamos todos los tags del tipo < a > $links = $doc ->getElementsByTagName( "a" ); // recorremos cada uno de los tags encontrados foreach ( $links as $link ){ // obtenemos la parte href de la etiqueta $href = $link ->getAttribute( "href" ); if ( strlen ( $href )>=4 && substr ( $href ,0,4)== "http" ){ // url entera $urls [] = $href ; } else if ( strlen ( $href )>0 && substr ( $href , 0, 1)== "/" ){ // url empieza por / le añadimos el dominio por delante $urls [] = $url . $href ; } else { // arhivo $urls [] = $url . '/' . $href ; } } // eliminamos duplicados $urls = array_unique ( $urls ); // ordenamos alfabéticamente sort( $urls ); return $urls ; } |
La llamada se realizará de esta forma tan sencilla, en la que además mostraremos el resultado del array devuelto por la anterior función:
// especificamos la url // obtenemos las url $urls = getUrls( $url ); // mostramos el resultado echo nl2br (implode( $urls , "\n" )); |
No hay comentarios:
Publicar un comentario