Récupérer les URLs et les Emails d'une page en PHP

Voici quelques lignes de codes, notamment composé d'expressions régulières vous permettant de récupérer toutes les adresses emails contenus dans une page ainsi que les liens qui la compose.

Dans un premier temps, prenons l'exemple ou l'on souhaite récupérer le contenu d'une page pour ensuite la traiter.

<?php
# Adresse du site à "exploiter"
$url = 'http://www.monsite.com';
 
# On récupère le contenu
$file = file_get_contents($url);

Désormais le contenu de la page est contenu dans notre variable "$file".

Adresses Emails
Grâce à une expression régulière nous avons la possibilité de récupérer dans un tableau toutes les adresses emails contenus dans notre variable.

<?php
# Récupération des emails
preg_match_all('`[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+`m', $file, $emails);
# Affichage du tableau
print_r($emails[0];

Il se peut que la même adresse ressorte plusieurs fois dans votre tableau. Dans ce cas vous pouvez utiliser la fonction array_unique().

URLs
La méthode reste identique, à savoir lister toutes les balises "<a" et en récupérer le contenu de l'option "href".

<?php
# Récupération des URLs
preg_match_all('/<a[^>]+href="([^"]+)/i', $file, $urls);
# Affichage
print_r($urls[1]);

Il est aussi possible de récupérer des doublons en fonction des sites mais aussi des liens tronqués ou des morceau de code javascript. Pour cela vous pouvez par exemple tester si le site existe ou vérifier le format de l'adresse url toujours avec une expression régulière.

Ajouter un commentaire