Extraire les adresses e-mail d'une chaine de caractères
- Par Emacs
- 1 commentaire
- 901 lectures
- De Hugo HAMON
- Site Internet
- RSS - Atom
Cette fonction permet d'extraire les adresses e-mails éparpillées ici et là dans un texte. Elle retourne un tableau contenant toutes les adresses e-mails uniques, c'est-à-dire que les adresses en double dans le texte ne sont enregistrées qu'une fois dans le tableau final.
C'est ce genre de fonctions qu'utilisent les groupes de hackers / spammers pour développer des bots qui parcourent les pages Internet pour en récolter des listes d'adresses e-mail. Je mets cette fonction à disposition dans un but purement éducatif pour présenter le principe et pour vous inviter à l'utiliser dans un contexte légal. En revanche, je ne peux être tenu responsable d'une quelconque utilisation illégale, malhonnête ou de quelconque dommage subit suite à son emploi.
Portion de code
<?php/*** Extrait les adresses e-mails présentes dans une chaine.* La fonction retourne un tableau des adresses e-mails. Si* des adresses e-mails se trouvent en doublon dans la chaine,* alors la fonction ne gardera dans le tableau qu'un seul exemplaire* des adresses e-mails.** @author Hugo HAMON <webmaster@apprendre-php.com>* @licence LGPL* @param string $sChaine la chaine contenant les e-mails* @return array $aEmails[0] Tableau dédoublonné des e-mails*/function extractEmailsFromString($sChaine) {if(false !== preg_match_all('`\w(?:[-_.]?\w)*@\w(?:[-_.]?\w)*\.(?:[a-z]{2,4})`', $sChaine, $aEmails)) {}}return null;}/*** Exemple d'utilisation*/$sChaine = 'Paul Prédot (paul-predot@jambon.com);';$sChaine.= ' Remi Martin (remi@martin.com);';$sChaine.= ' Joseph Falco (joseph.falco@anyone.com);';$sChaine.= ' Remi Martin (remi@martin.com);';$sChaine.= ' Joseph Falco (joseph.falco@anyone.com)';$aEmails = extractEmailsFromString($sChaine);echo '<pre>';echo'</pre>';?>
Résultat
Array([0] => paul-predot@jambon.com[1] => remi@martin.com[2] => joseph.falco@anyone.com)1

1. Par Mickaël Wolff le jeudi 12 juin 2008 à 12:12