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 — « https://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 !