Obtenir les adresses e-mail d'un texte

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 127 fois - Téléchargée 202 fois

Contenu du snippet

Cette fonction permet d'extraire toutes les adresses e-mail contenues dans un texte.
Elle retourne un tableau indexé directement exploitable via une boucle for() par exemple.

Elle peut être utile si vous stockez les adresses de vos visiteurs dans un fichier et que vous souhaitiez rapidement les récupérer pour envoyer un message via mail().
Elle peut aussi servir à extraire les adresses contenues dans du code HTML.
Enfin, vous verrez vous même...

Source / Exemple :


<?php
/*****************************************************************************

  • Fonction get_email_addrs() : prototype et exemple
  • Copyright © Dean
*
  • Contact : -
*
                                                                                                                                                          • /
/*
  • Prototype de fonction :
*
  • array get_email_addrs(string string)
  • Retourne les adresses e-mail de string dans un tableau indexé
  • /
function get_email_addrs($string) { // Crée le tableau de destination $email_list = array(); // Obtient les adresses contenues dans la chaîne while(eregi("[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+", $string, $regs)) { // Ajoute l'adresse trouvée à l'index suivant du tableau de sortie $email_list[] = $regs[0]; // Supprime l'adresse de la chaîne $string = str_replace($regs[0], "", $string); } // Plus d'adresses ? Retourne la liste return array_keys(array_flip($email_list)); } /*
  • Exemple d'utilisation :
  • /
// Définit la chaîne à analyser $string = 'Cette chaîne contient une adresse ici : user@provider.com'; $string .= ' et une autre là : client@website.net.'; // Extrait les adresses e-mail de cette chaîne $email_list = get_email_addrs($string); // Affiche la chaîne echo 'Chaîne de base : "'.$string.'".<br /><br />'; // Affiche les adresses : echo 'Adresses trouvées avec get_email_addrs() :<br />'; for($i=0; $i<count($email_list); $i++) { echo '<a href="mailto:'.$email_list[$i].'" title="'.$email_list[$i].'">'.$email_list[$i].'</a><br />'; } ?>

Conclusion :


Je crois que c'est l'ultime fonction pour obtenir les adresses e-mail dans un texte !
Cette MAJ de mon précédent script (fonction show_emails) atteint les objectifs que je lui avais fixés, à savoir retourner les adresses dans un tableau.

A voir également

Ajouter un commentaire

Commentaires

rvstudio
Messages postés
1
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
26 novembre 2009

Bonjour,

Une pure merveille ce code php !
Chapeau bas au créateur .
Je viens en 3 minutes chrono de récupérer 356 adresses mails enfouis dans un fichier texte
Il m'aurait fallu au moins 4 heures en le faisant manuellement .
Un grand merci !
cs_Dean
Messages postés
500
Date d'inscription
mardi 16 avril 2002
Statut
Membre
Dernière intervention
2 août 2004

Bonjour,

Rien ne vous interdit d'apprendre un peu le PHP ; j'ai mis un exemple d'utilisation, il suffit de remplacer $string par la chaîne que vous voulez...

Par exemple, pour le contenu d'un fichier texte :

$string = implode('', file("monfichier.txt"));

Après il suffit de lancer tout ça sur un serveur PHP (style EasyPHP, WAMP, compte Free, etc...) et c'est OK !

Je sais que le prêt à l'emploi est la mode ces derniers temps, mais bon ce code a déjà 6 ans et l'auteur ne souhaite pas forcément faire des MAJ régulières :)
Ceci dit, vous faites bien de poser vos questions...
cs_ChrisColumbus
Messages postés
5
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
16 décembre 2008

Oui effectivement pour les nuls comme moi comment ça marche ce code ? On peut avoir un mode d'emploi plus explicite ? Ou met t'on le fichier texte dans le lequel cette fonction va chercher les emails ?
Comment ça marche quoi...

Merci
zykos
Messages postés
1
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
18 avril 2008

et comment qu'on l'installe? et qu'on l'utilise?
merci
aquewel
Messages postés
145
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 juin 2010

voila c'est nickel ca
un peu d'ajax et de javascript avec du mysql et ton truc ma sauve la vie :-) ou me dé complique la vie plutot :-) merki

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.