Extracteur d’urls en PHP

Par     24 mars 2012  - Catégorie(s): Php  Php

Un aller simple pour le PHP !PHP n’en finit pas de m’étonner par sa simplicité, sa vitesse de mise en œuvre. L’exemple que je vous propose ci-dessous vous permettra d’extraire tous les liens href et src à partir d’une page Web.

Extraction des liens par les expressions régulières

Le langage PHP possède deux instructions « magiques » dans le maniement des expressions régulières. Il s’agit de preg_match et surtout de preg_match_all.

<?php
/*
Contenu du fichier extractsurl.php
*/
//récupération de l'adresse de la page transmise par la ligne de commande
$link=$argv[1];
//stockage du contenu de la page à partir du lien
$html=file_get_contents($link);
//Extraction de tous les liens dans un tableau
preg_match_all('/(href|src)=["\\']([^"\\']+)["\\']/i',$html,$urls, PREG_SET_ORDER);
foreach($urls as $url)
{
    $res[]=$url[2];
}
//Tri du tableau de résultats
sort($res);
//Affichage des résultats
foreach($res as $url)
{
    echo "$url\\n";
}
?>

Utilisation du script PHP

A partir de la ligne de commande, tapez tout simplement :

php -f extracturls.php -- "http://www.dsfc.net/"

Si vous me trouvez un langage qui me permet de faire plus court encore avec autant de simplicité, alors je vous offre une bière !

Autres billets sur le sujet :

Dsfc Dsfc Dsfc sur Tout le Monde en Blogue

Vus : 1563
Publié par Denis Szalkowski : 58