PHP, MYSQL, Javascript, HTML…Just do it!

Récupérer des liens d’une page web

Filed under: PHP, PHP - Expressions régulières | Tags: , , récupérer des liens | juin 3rd, 2009
Post

Récupération des liens d’une page ( la valeur d’attribut ‘href’ de la balise <a>) n’est pas toujours une tâche facile.
En effet, une page web peut être du type html ou xhtml, des balises peuvent être écrits en minuscule ou majuscule, des attributs des balises peuvent être entourées par les quotes simples ou doubles ou ne pas du tout avoir de quotes.

Voici une expression régulières qui marchera dans tous les cas :

$reg_exp = ‘#<a[^>]*href=["\']?([^"\'> ]*)["\']?[^>]*>#is’ ;

Voici la page de test :

<?php

$content = file_get_contents('http://www.kodeya.com');
$reg_exp = '#<a[^>]*href=["\']?([^"\'> ]*)["\']?[^>]*>#is' ;
if( preg_match_all( $reg_exp , $content, $matches )){

echo '<pre>';
print_r( $matches[1] );
echo '</pre>' ;

}
?>

Ce qui donne comme résultat tous les liens de la page d’accueil :

Array
(
    [0] => http://www.kodeya.com/
    [1] => http://www.kodeya.com/feed
    [2] => mailto:xxx@gmail.com
    [3] => http://www.kodeya.com/
    [4] => http://www.kodeya.com/
    [5] => http://www.kodeya.com/about
    [6] => http://www.kodeya.com/php-developpement-web
    [7] => http://www.kodeya.com/php-developpement-web/recuperer-des-liens-page-web-56.htm
    [8] => http://www.kodeya.com/php-developpement-web/recuperer-des-liens-page-web-56.htm#comments
    [9] => http://www.kodeya.com/category/php-developpement-web
    [10] => http://www.kodeya.com/category/php-developpement-web/expressions-regulieres
    [11] => http://www.kodeya.com/tag/expression-reguliere
    [12] => http://www.kodeya.com/tag/php
    [13] => http://www.kodeya.com/tag/recuperer-des-liens
    [14] => http://www.kodeya.com/notes/hello-world-1.htm
    [15] => http://www.kodeya.com/notes/hello-world-1.htm#comments
    [16] => http://www.kodeya.com/category/notes
    [17] => http://www.kodeya.com/php-developpement-web/recuperer-des-liens-page-web-56.htm
    [18] => http://www.kodeya.com/notes/hello-world-1.htm
    [19] => http://www.kodeya.com/category/notes
    [20] => http://www.kodeya.com/category/php-developpement-web
    [21] => http://www.kodeya.com/category/php-developpement-web/expressions-regulieres
    [22] => http://www.kodeya.com/about
    [23] => http://www.kodeya.com/php-developpement-web
    [24] => http://www.kodeya.com/php-developpement-web/php-expressions-regulieres
    [25] => http://www.kodeya.com/php-developpement-web/php-construire-expression-reguliere-meta-caracteres
    [26] => http://www.kodeya.com/tag/expression-reguliere
    [27] => http://www.kodeya.com/tag/php
    [28] => http://www.kodeya.com/tag/recuperer-des-liens
)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*


Anti-Spam Image
Pour prouver que vous n'êtes pas un bot, recopiez le code ci-dessous  

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>