ShproT Опубликовано 10 апреля, 2007 Жалоба Поделиться Опубликовано 10 апреля, 2007 (изменено) Доброго всем времени суток! Ситуация такая: есть файл с резервной копией БД .sql. Из него нужно вытащить все E-mail адреса пользователей. Но проблема в том что их там ОЧЕНЬ много, и вручную это сделать просто нереально. Если бы они шли попорядку тогда было бы все просто, а то там таблицы идут, ну сами понимаете. Можно как-нибудь вытащить автоматически все адреса? Например с помощью РНР или текстового редактора ну или каким другим способом? Если это неосуществимо скажите тогда как данные из этого .sql файла импортировать в уже существующую бд.... Очень надо ( Заранее спасибо : ) Изменено 10 апреля, 2007 пользователем ShproT Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 10 апреля, 2007 Жалоба Поделиться Опубликовано 10 апреля, 2007 (изменено) Именно для таких задач придумали языка 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 написать Изменено 10 апреля, 2007 пользователем Darhazer Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 10 апреля, 2007 Жалоба Поделиться Опубликовано 10 апреля, 2007 <?$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 с имя файла Ссылка на комментарий Поделиться на другие сайты Поделиться
ShproT Опубликовано 10 апреля, 2007 Автор Жалоба Поделиться Опубликовано 10 апреля, 2007 Я так понял командная строка в мускуле это mysqladmin, у меня он открывается всего на долю секунды. А РНР скрипт... создал текстовый файл mails.php с содержанием которое вы дали выше. Открываю через браузер - показывается только фрагмент кода и все или я что-то нитак делаю ? $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); ?> Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 10 апреля, 2007 Жалоба Поделиться Опубликовано 10 апреля, 2007 (изменено) Я так понял командная строка в мускуле это mysqladmin, у меня он открывается всего на долю секунды. А РНР скрипт... создал текстовый файл mails.php с содержанием которое вы дали выше. Открываю через браузер - показывается только фрагмент кода и все или я что-то нитак делаю ? $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, смотрите пример которий я вам дал Скрипт можно запустить и без веб сервера, я в Zend Studio тестирую, можно и из командной строке ( только замените "<br>" на "\n" ), но вам нужно установить PHP на системе П.С. Возможно чтоб у вас есть веб сервер/php но он не настроен работать с тэгов <? Тогда замените <? на <?php Tэг ?> не нужно менят Изменено 10 апреля, 2007 пользователем Darhazer Ссылка на комментарий Поделиться на другие сайты Поделиться
ShproT Опубликовано 11 апреля, 2007 Автор Жалоба Поделиться Опубликовано 11 апреля, 2007 Спасибо, заработало! Добавил к <? еще php. : ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти