begin process at 2012 02 12 06:37:26
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > OBTENIR LES ADRESSES E-MAIL D'UN TEXTE

OBTENIR LES ADRESSES E-MAIL D'UN TEXTE


 Information sur la source

Note :
6,5 / 10 - par 4 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caratère Classé sous :email, chercher, texte, lister, expression régulière Niveau :Débutant Date de création :08/07/2002 Date de mise à jour :09/02/2008 19:00:08 Vu :8 840

Auteur : Dean

Ecrire un message privé
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • <?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 />';
  • }
  • ?>
<?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.


 Historique

20 juillet 2006 09:49:18 :
Suppression de mon addresse mail (obsolète)
02 février 2008 12:58:02 :
J'ai mis mon pseudo pour l'auteur de la source
02 février 2008 13:11:13 :
J'ai enlevé le zip qui est inutile.
09 février 2008 19:00:08 :
La fonction supprime maintenant les doublons.

 Sources du même auteur

COMPTEUR DE CLICS
RENOMMAGE MASSIF DE FICHIERS
NOMBRE DE FICHIERS DANS UN RÉPERTOIRE
INSTALLER PHP-GTK SOUS EASYPHP
COMPTEUR DE CONNECTÉS

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ... par cod57
Source avec Zip Source avec une capture FORMULAIRE VERS COURRIEL BASIQUE AVEC CONTRÔLE CAPTCHA ANTI ... par cod57
Source avec Zip Source avec une capture CLASSE DE MESSAGERIE par janhsh
Source avec Zip CLASS D' ENVOIE DE MAIL EN SMTP par ImmortalPC
Source avec Zip FORMULAIRE PERMETTANT D'ENVOYER UN E-MAIL (AVEC PIÈCES JOINT... par triumphs

Commentaires et avis

Commentaire de aquewel le 06/02/2008 21:34:43 5/10

ca serait tres utiles si tu pouvais traiter les doublons
si tu la mets a jout je m'en servirais :-)

Commentaire de Dean le 09/02/2008 19:01:51

Voilà, j'ai ajouté un array_keys(array_flip($email_list)), normalement ça enlève les doublons.

Commentaire de aquewel le 09/02/2008 20:15:44

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

Commentaire de zykos le 18/04/2008 10:27:55

et comment qu'on l'installe? et qu'on l'utilise?
merci

Commentaire de ChrisColumbus le 16/12/2008 14:11:38

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

Commentaire de Dean le 16/12/2008 19:53:19

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...

Commentaire de rvstudio le 26/11/2009 14:44:07 10/10

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 !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problème Return-Path Email [ par omaxibox ] Bonjour,Je débute avec le php et j'ai un petit souci avec mon script.Quand on envoi le formulaire flash, tout ce passe bien, je recoisles infos via le Petit probleme de formatage de texte dans un email [ par TheBestFear ] Bonjour à tous, ne sachant pas trop ou poster se sujet je l'ai poster ici. J'ai fait un formulaire de contact via flash (AS 3, sous adobe CS4) jusque Comment affecter un texte issu de MySQL dans un objet MEMO avec PHP ? [ par bluemandfr ] Bonjour à tous. Voici mon problème : dans une table, j'ai un champs appelé Texte, qui contient du HTML (cela inclue donc des balises mais aussi du te Comment affecter un texte contenant du HTML et des caractères spéciaux dans un objet MEMO avec PHP ? [ par bluemandfr ] Nonjour à tous. Voici mon problème : dans une table, j'ai un champs appelé Texte, qui contient du HTML (cela inclue donc des balises mais aussi du te convertion texte en html [ par Dav_c ] Bonjour, j'essai de récuperé une valeur qui resemble a sa: &lt;p&gt; &lt;br /&gt; &lt;strong&gt;&lt;em&gt;&lt;u&gt;TEST1&lt;/u&gt;&lt;/em&gt;&lt;/st Script de newsletter [ par 0303 ] bonjour j'ai crée un formulaire de newsletter, mais mon script n'arrive pas a inserer le nom qui se trouve dans le champ email. il met par defaut ema inserer des données dans la base à la ligne choisie [ par macadelino ] Bonjour, si quelqu'un peut m'aider, car je suis coincé sur un scripts: 1)on a deux zones de texte ,la premiere pour mettre un texte et la deuxieme po Email de confirmation non envoyé [ par claude811 ] Je viens d'installer un script d' autosurf avec la base de donnée.Tout est bien installer,mais quand je fait un test d'inscription et signup,je reçois $_GET et les accents ?? [ par marcvart ] marcvart Bonjour, J'envoie par le biais d'un lien des variables contenant des accents et lorsque je les lis avec $_GET, les accents se transforment e texterea comment concerver valeur [ par manu7930 ] Bonsoir tout le monde. J'aurai une petite question, un soucis qui ne doit pas etre si compliqué que ça, mais la, je vois pas du tout et je bug... Da


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales