Перейти к содержанию
СофтФорум - всё о компьютерах и не только

импорт E-mail адресов из файла


Рекомендуемые сообщения

Доброго всем времени суток!

Ситуация такая: есть файл с резервной копией БД .sql. Из него нужно вытащить все E-mail адреса пользователей. Но проблема в том что их там ОЧЕНЬ много, и вручную это сделать просто нереально. Если бы они шли попорядку тогда было бы все просто, а то там таблицы идут, ну сами понимаете.

Можно как-нибудь вытащить автоматически все адреса? Например с помощью РНР или текстового редактора ну или каким другим способом?

Если это неосуществимо скажите тогда как данные из этого .sql файла импортировать в уже существующую бд.... Очень надо (

Заранее спасибо : )

Изменено пользователем ShproT
Ссылка на комментарий
Поделиться на другие сайты

Именно для таких задач придумали языка Perl да и в общем регулярних выражения.

с PHP тоже можно сделать...

Подождите пару минуть, напишу скрипт...

А насчет импорта, можно из командной строке, MySQL и PostgreSQL ( я с ним работал ) поддерживають выполнение sql из файла, а можно при помощю phpMyAdmin и функцию import. Если файл большой ( свише примерно 8 mb ) лучше из командной строке.

Для MySQL:

C:\apachefriends\xampp\mysql\bin>mysql -uroot -DtestWelcome to the MySQL monitor.  Commands end with; or \g.Your MySQL connection id is 1 to server version: 4.1.10Type 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> source имя-файла.sql

здесь root -имя пользвателя, test - имя БД

если есть пароль для польвателя, надо его через -p написать

Изменено пользователем Darhazer
Ссылка на комментарий
Поделиться на другие сайты

<?$fp = fopen("mails.txt", "r");while ( $line = fgets($fp) ){$test = preg_match_all( "/[-a-z0-9\-_]+@([-a-z0-9\-]+\.)+[a-z]{2,}/", $line, $mails);foreach ($mails[0] as $key => $mail ){	echo $mail."<br>";}}fclose($fp);?>

Поменяйте mails.txt с имя файла

Ссылка на комментарий
Поделиться на другие сайты

Я так понял командная строка в мускуле это mysqladmin, у меня он открывается всего на долю секунды.

А РНР скрипт...

создал текстовый файл mails.php с содержанием которое вы дали выше. Открываю через браузер - показывается только фрагмент кода и все :g: или я что-то нитак делаю :dontgetit:

? $fp = fopen("mails.txt", "r"); while ( $line = fgets($fp) ) { $test = preg_match_all( "/[-a-z0-9\-_]+@([-a-z0-9\-]+\.)+[a-z]{2,}/", $line, $mails); foreach ($mails[0] as $key => $mail ) { echo $mail.""; } } fclose($fp); ?>
Ссылка на комментарий
Поделиться на другие сайты

Я так понял командная строка в мускуле это mysqladmin, у меня он открывается всего на долю секунды.

А РНР скрипт...

создал текстовый файл mails.php с содержанием которое вы дали выше. Открываю через браузер - показывается только фрагмент кода и все :g: или я что-то нитак делаю :dontgetit:

? $fp = fopen("mails.txt", "r"); while ( $line = fgets($fp) ) { $test = preg_match_all( "/[-a-z0-9\-_]+@([-a-z0-9\-]+\.)+[a-z]{2,}/", $line, $mails); foreach ($mails[0] as $key => $mail ) { echo $mail.""; } } fclose($fp); ?>

Видимо у вас не установлени Веб сервер / PHP

А насчет командной строке, говорил о командной строке Windows, а не MySQL, смотрите пример которий я вам дал :g:

Скрипт можно запустить и без веб сервера, я в Zend Studio тестирую, можно и из командной строке ( только замените "<br>" на "\n" ), но вам нужно установить PHP на системе

П.С. Возможно чтоб у вас есть веб сервер/php но он не настроен работать с тэгов <?

Тогда замените <? на <?php

Tэг ?> не нужно менят

Изменено пользователем Darhazer
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...