[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсер email
xenkook
Всем доброго времени суток! Озадачился темой написания парсера email'ов. Есть код, который подгружает текстовый файл (страница html), вытаскивает оттуда все адреса и записывает их в другой файл .txt Но есть проблема - адреса повторяются неоднократно. То есть на выходе я получаю массив, в котором несколько строк подряд идентичны друг другу. Может кто подскажет, как подредактировать код, чтобы прежде, чем записать массив в файл, php очистил дубликаты?


$url="8.txt";
$fgc=file_get_contents($url);
$reg="^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}^";
$a = preg_match_all($reg, $fgc, $matches);
$fop = fopen('email.txt','a');
foreach ($matches[0] as $email)
{
fwrite($fop, "$email\r\n");
}
fclose($fop);




Спустя 1 минута, 32 секунды (19.07.2012 - 13:21) xenkook написал(а):
array_unique - думаю так. Может есть что проще?

Спустя 2 минуты, 6 секунд (19.07.2012 - 13:23) Игорь_Vasinsky написал(а):
$emails = file('email.txt');

if(!in_array('email@mail.ru', $emails))
file_put_contents('email.txt', 'email@mail.ru'.PHP_EOL, FILE_APPEND)

Спустя 8 часов, 3 минуты, 20 секунд (19.07.2012 - 21:26) xenkook написал(а):
И результат выполнения этого кода - запись в файл "email@mail.ru" А мне надо все извлеченные адреса туда закинуть. Не работает это. :-(

Спустя 33 минуты, 7 секунд (19.07.2012 - 21:59) DarkLynx написал(а):
Цитата (xenkook @ 19.07.2012 - 18:26)
И результат выполнения этого кода - запись в файл "email@mail.ru" А мне надо все извлеченные адреса туда закинуть. Не работает это. :-(

Тебе скинули принцип, идею, алгоритм как хочешь обзови.. Дальше мысль то развивай и модернизируй как тебе надо

Спустя 1 минута, 28 секунд (19.07.2012 - 22:01) kamanch написал(а):
Так, а чем тебе array_unique не нравится?
Если ты адреса выбираешь регуляркой, то у тебя по любому массив с повторами.

Значит, либо регулярка + array_unique , либо заполнение массива циклом с предпроверкой array_search-ем

Спустя 1 день, 34 минуты, 56 секунд (20.07.2012 - 22:36) xenkook написал(а):
Вот так получилось:

$url="7.txt";
$fgc=file_get_contents($url);
$reg="^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}^";
$a = preg_match_all($reg, $fgc, $matches);
$fop = fopen('email.txt','a');
foreach ($matches[0] as $email)
{
fwrite($fop, "$email\r\n");
}
fclose($fop);
$emails = file("email.txt");
$fin=array_unique($emails);
file_put_contents("email.txt", $fin);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.