Extracteur d’urls en 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 !