Resgatando todos os links de uma página com DOMDocument

Resgatando todos os links de uma página com DOMDocument
4.0 1

Uma necessidade que já tive várias vezes foi a de resgatar todos os links de uma determinada página. Isso tem várias utilidades. Da mesma forma tem várias maneiras de ser implementada, neste caso em específico vou mostrar de maneira simples como executar a tarefa com DOMDocument.

<?php
function pega_links($link){
    $retorno = array();
     
    $dom = new domDocument;
     
    @$dom->loadHTML(file_get_contents($link));
     
    $dom->preserveWhiteSpace = false;
     
    /** Olha a mágina, pegando todas as tags "a"**/
    $links = $dom->getElementsByTagName('a');
     
    /** Lendo todas as tags **/
    foreach ($links as $tag){
        $retorno[$tag->getAttribute('href')] = $tag->childNodes->item(0)->nodeValue;
    }
     
    return $retorno;
}
  
//URL a ser lida
$link = "http://www.php.net";
 
$urls = pega_links($link);

if(sizeof($urls) > 0){
    foreach($urls as $chave=>$valor){
        echo $chave.' - '.$valor.'
'; } }else{ echo 'Nenhum link encontrado em '.$link; } ?>


Não vou me explicar o detalhadamente, pois isto está no outro post sobre DOMDocument. Posteriormente vou implementar outra forma de realizar a ação com expressão regular.

Comente =)

Atenção: Todos os comentários são moderados, por isto não perca seu tempo postando bobagens ou spam.