2010-11-23 7 views
-2

Bonjour, mesdames et messieurs. Je suis un débutant en programmation et mon problème est dans la création d'un analyseur PHP pour les adresses e-mail. J'ai besoin d'analyser un site web entier et créer un fichier .txt avec des e-mails. Donc, c'est la question. Que dois-je utiliser? Est-ce que ça devrait être une fonction php * file_get_contents * avec des arguments ou peut-être un PHPparser_Generator du projet PEAR? Des idées? P.S .: Je voudrais vous rappeler de ne pas écrire le code lui-même, parce que je veux le faire moi-même. Juste n'importe quel indice.PHP analyseur d'adresses e-mail

Merci beaucoup. Cordialement, Aen

+3

Sons douteux. –

+1

Maintenant, pourquoi voudriez-vous récolter des adresses électroniques à partir d'un site Web? Si vous contrôliez le site Web, les adresses électroniques seraient accessibles dans les profils d'utilisateurs, par exemple. Ça me semble spammé. –

+0

Ça sent comme un script projet de kiddie – stillstanding

Répondre

0

Oui, file_get_contents le fera. Affectez-le à une variable, puis utilisez preg_match_all pour trouver cette expression: /[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}/i. Ceci est une expression régulière qui correspond aux adresses e-mail.

+1

Commentaire très mineur - le symbole plus est également valide dans la section utilisateur d'une adresse e-mail, et a été popularisé par son utilisation dans GMail, et d'autres fournisseurs d'email, comme indicateur permettant à un utilisateur de avoir plusieurs adresses e-mail "virtuelles", c'est-à-dire que [email protected] et [email protected] passeraient par la même adresse. –

+0

L'analyse d'une adresse e-mail ne doit pas être prise à la légère: http://www.linuxjournal.com/article/9585 – stillstanding

+0

Comme Lucanos l'a souligné + devrait être inclus ainsi que d'autres symboles. Regardez http://www.regular-expressions.info/email.html et amusez-vous en vérifiant la mise en œuvre RFC 2822 réelle –

1

Du haut de ma tête, quelque chose comme .....

preg_match_all("/([a-z0-9\._%+!$&*=^|~#%\'`?{}/\-][email protected][a-z0-9\.-]+\.[a-z]{2,6})/i", 
    file_get_contents($somefile), $matches, PREG_PATTERN_ORDER); 
foreach ($matches[0] as $addrspec) { 
    mail($addrspec, "hello", $msg); 
} 
+0

La première partie d'une adresse e-mail peut techniquement inclure également un @ :) Et vous m'avez critiqué pour seulement ADDR-SPEC correspondant donc je voudrais le voir révisé pour correspondre à l'adresse e-mail complète (maintenant il y a un défi !!!) . Cependant, +1 pour inclure le code entier. –