Найти строку и разделить

Статус
В этой теме нельзя размещать новые ответы.
Как-то так(набросал на коленке)
PHP:
 $emails = file('e-mails.txt');
 $result = array();
 foreach ($emails as $k => $v)
 {
 	if (preg_match('/.+?@.+?@/', $v))
 	{
 		preg_match_all('/.+?@.+?\.ru/', $v, $matches);
 		print_r($matches);
 		foreach ($matches[0] as $key => $val)
 		{
 			$result[] = trim($val);
 		}
 	}
 	else
 		$result[] = trim($v);
 }
С массивом $result можно производить дальнейшие действия(вывод на экран, сохранение в файл етц)
 
либо так:
PHP:
$f = file_get_contents("mail.txt");
preg_match_all("`([a-zA-Z0-9\.\-]+)@([a-z]+)\.ru`is", $f, $m);
print_r($m[0]);
сработает быстрее, но если база большая, то текст надо разбивать на куски и пихать кусками в регулярку.
 
либо так:
PHP:
$f = file_get_contents("mail.txt");
preg_match_all("`([a-zA-Z0-9\.\-]+)@([a-z]+)\.ru`is", $f, $m);
print_r($m[0]);
сработает быстрее, но если база большая, то текст надо разбивать на куски и пихать кусками в регулярку.
Скрипт предложеный Alix
работает менее 20 сек.

Твой вариант колбаситься окло 15 минут



Тему CLOSED
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху