Блог веб-разработчика: в помощь программистам

Парсер email-адрессов.


Часто ли вам приходилось собирать базу email адрессов? Мне вот частенько приходится из базы сайтов выдирать email-адресса админов. Ручками это делать во первых тупо, во вторых – уморительно.

Вот простой кусок кода который ходит по ссылкам из текстового файла и собирает все mail-адресса на страничке. В данном примере выводиться урл – и массив из email адрессов, но можете переписать под свои нужны.

< ?
set_time_limit(0);
$lines = file('mail.txt');
$out = array();

foreach ($lines as $line_num => $line) {
$url=file_get_contents(trim($line));
preg_match_all('/[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+
?[\.A-Za-z0-9]{2,}/', $url, $out);
echo $line.'   ';
print_r($out);
echo '

';
}
?>

P.S в регулярных выражениях я не силён и поэтому с этой регуляркой есть проблема – не правильно обрабатывает email адресса в которых есть знак -.

  • preg_match_all(‘~[.-_a-z0-9]+?@[.-a-z0-9]+
    ?[.a-z0-9]{2,}~i’, $url, $out);

  • Спасибо за код, будем тестить юзать)

    • Вот есть простой и удобный парсер адресов себе писал для некоторых нужд

      http://www.andriets.com/useful-tools-en/for-marketing-en/tool-email-parser.html

      вводишь текст в котором содержатся адреса жмешь кнопку parse и получаешь список неповторяющихся адресов. Можно разделитель вставить тамже

  • спасибо админ, парсер помог. пришлось немного подправить

You can follow any responses to this entry through the RSS 2.0 feed.