Obtenir les adresses e-mail d'un texte

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

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.