Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Нужно вытащить email-адреса из MySQL-базы (или из ее дампа)
цитата
05/11/09 в 11:39
 violar
У меня был скрипт, позволяющий вытаскивать email-адреса из MySQL-базы. Сейчас понадобился, но почему-то никак не могу найти.

Может можно такой где-то скачать? Никто не подскажет? Или может у кого есть такой, который бы из текста email-адреса вытаскивал. Например, из дампа базы. Очень нужно...

Сразу оговорюсь, что со спамом моя просьба никак не связана. Просто на хостинге жесткие лимиты на почтовые рассылки, и я хотел бы перевести своих зарегистрированных пользователей на получение рассылок через сервис рассылок на Mail.ru. А для этого, соответственно, нужно создать список адресов пользователей.
цитата
05/11/09 в 12:01
 Alexandur
Смысл непонятен. Если е-мейлы отдельным полем, то простейший select
Если где-то в полях, то регулярными, что-то типа regexp '(^[a-z0-9_-\.]+)\@(^[a-z0-9_-\.]+)'
цитата
05/11/09 в 12:11
 violar
gimcnuk писал:
'(^[a-z0-9_-\.]+)\@(^[a-z0-9_-\.]+)'

Я не программист, поэтому для меня это "лес тёмный".

А смысл моей просьбы можно упростить - требуется из текстового файла тупо вытащить email-адреса. И сохранить их списком по одному в строке в отдельный ТХТ-файл.
цитата
05/11/09 в 12:28
 Alexandur
Что-то вроде:

Код:

$base = file_get_contents('basa.txt');
preg_match_all('/([a-z0-9_\-\.]+)\@([a-z0-9_\-\.]+)/s', $base, $out, PREG_PATTERN_ORDER);

$fp = fopen('emails.txt', 'w');
foreach($out[0] as $v)
{
fwrite($fp, $v ."\n");
}
fclose($fp);


Последний раз редактировалось: Alexandur (05/11/09 в 13:32), всего редактировалось 2 раз(а)
цитата
05/11/09 в 12:54
 violar
gimcnuk писал:
Что-то вроде:
Код:

$base = file_get_contents('basa.txt');
preg_match_all('/(^[a-z0-9_-\.]+)\@(^[a-z0-9_-\.]+)/s', $base, $out, PREG_PATTERN_ORDER);
$fp = fopen('emails.txt', 'w');
foreach($out as $v)
{
fwrite($fp, $v[0] .'@'. $v[1] ."\n");
}
fclose($fp);


Что-то у меня не работает. Не создает файла со списком (emails.txt). Создал его сам (с маленьким текстом в нем)и с 666, после чего запустил скрипт. Скрипт только очистил emails.txt, но ничего в него не записал
цитата
05/11/09 в 12:55
 Alexandur
Ошибка в preg_match у меня была, переписал.
цитата
05/11/09 в 13:09
 violar
gimcnuk писал:
Ошибка в preg_match у меня была, переписал.


Всё равно не работает...
цитата
05/11/09 в 13:26
 Alexandur
Код:
preg_match_all('/([a-z0-9_\-\.]+)\@([a-z0-9_\-\.]+)/s', $base, $out, PREG_PATTERN_ORDER);

Окончательный вариант. icon_smile.gif
Пришлось самому проверять.
цитата
05/11/09 в 14:30
 violar
gimcnuk писал:
Код:
preg_match_all('/([a-z0-9_\-\.]+)\@([a-z0-9_\-\.]+)/s', $base, $out, PREG_PATTERN_ORDER);

Окончательный вариант. icon_smile.gif
Пришлось самому проверять.


Из дампа таблицы, в которой было около 1600 адресов скрипт создал файл на 88 кб с вот таким текстом:

Цитата:
admin@warez-a.ru@sergej-tishonkov@yandex.ru
admin@sergej-tishonkov
warez-a.ru@yandex.ru


Последний раз редактировалось: violar (05/11/09 в 14:31), всего редактировалось 1 раз
цитата
05/11/09 в 14:31
 ibiz
юзаю такой код, может у меня ошибка?
Код:
"^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}"
цитата
15/11/09 в 12:19
 Nevur
TextPipe Pro Evaluation - софтина выдерет тебе любые мыла, потом чуть чуть подправишь и всё ;)
далее другой можно откорректировать что бы небыло двойников ;)

цитата
15/11/09 в 12:52
 alex.raven
violar писал:
У меня был скрипт, позволяющий вытаскивать email-адреса из MySQL-базы. Сейчас понадобился, но почему-то никак не могу найти.
Может можно такой где-то скачать? Никто не подскажет? Или может у кого есть такой, который бы из текста email-адреса вытаскивал. Например, из дампа базы. Очень нужно...
Сразу оговорюсь, что со спамом моя просьба никак не связана. Просто на хостинге жесткие лимиты на почтовые рассылки, и я хотел бы перевести своих зарегистрированных пользователей на получение рассылок через сервис рассылок на Mail.ru. А для этого, соответственно, нужно создать список адресов пользователей.


Так а в чём проблема? Заходишь в phpMyAdmin, вводишь запрос:

SELECT email FROM user_baza;

Далее внизу там будет ссылка Export - кликаешь,
выбираешь формат - CSV, Fields enclosed by - убираешь " и жмёшь Go - и вот тебе чистенький список емейл адресов, по одному в строчке.
цитата
16/11/09 в 01:27
 freeek
в этом случае, я думаю, бесполезно писать regex, не знаяю как уложенны данные


Эта страница в полной версии