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.

4 Commentaire(s)

  1. Commenté par Med le mardi 01 mars à 19:22

    Trés intéressant comme astuce, j'avais chercher un truc de  ce genre pour récupérer le titre de la page grâce à un script qui lui récupère les FluxRSS..
    Je te remercie infiniment wink
    PS : je m'abonne a ton blog tongue trop sympa

  2. Commenté par Med le mardi 01 mars à 19:55

    <?php
    print_r($emails[0]);

    et non :

    <?php
    print_r($emails[0];

  3. Réponse

    Merci bien c'est corrigé. wink

  4. Commenté par abercrombie paris le vendredi 06 mai à 13:37

    Du coup, c'est bon à savoir ça ! Merci

  5. Commenté par jeux par navigateur le lundi 09 janvier à 17:45

    Merci beaucoup pour ces bouts de code.

    Je n'ai trouver sur aucun site (et ça fait au moins une heure que je recherche) de solution pour récupérer les url et ton bout de code fonctionne.

    Merci

Ajouter un commentaire