3
Récupérer des liens d’une page web
Filed under: PHP, PHP - Expressions régulières | Tags: expression reguliere (2), PHP (3), récupérer des liens | juin 3rd, 2009
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
)