выдергивание емейлов с сайта

Тема в разделе "PHP", создана пользователем unsiker, 17 окт 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. unsiker

    unsiker

    Регистр.:
    6 июн 2008
    Сообщения:
    465
    Симпатии:
    172
    Подскажите как реализовать такое:

    Есть таблица, в ней 2 поля. 1-ое содержит список веб-адресов, а во второе поле нужно вставить все емейлы которое содержатся на веб страничке указаных в первом поле. Помогите со скриптом
     
  2. silent9

    silent9 Постоялец

    Регистр.:
    7 июн 2008
    Сообщения:
    136
    Симпатии:
    10

    получение страницы
    $result=GetUrl($url);
    регулярное выражение для выбора e-mailов
    $regvar="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
    preg_match_all("/".$regvar."/is",$result,$array);
    потом смотриш массив $array и записываеш в базу
     
    unsiker нравится это.
  3. unsiker

    unsiker

    Регистр.:
    6 июн 2008
    Сообщения:
    465
    Симпатии:
    172
    ок, с этим разобрался, а как быть если на странице не один а два, три емейла? мне всех их нужно записать, через запятую в базу. как узнать размерность масива или как сделать чтоб он сразу попал в таблицу через запятую?
     
  4. silent9

    silent9 Постоялец

    Регистр.:
    7 июн 2008
    Сообщения:
    136
    Симпатии:
    10
    все адреса которые будут на странице попадут в $array
    а дальше

    foreach( $array as $key=>$val )
    {
    // какиенить проверки, выбор адресов, удаление повторяющихся и т.д...
    // запись в базу
    $r=sql_query("insert into mail values ...");
    }
     
  5. unsiker

    unsiker

    Регистр.:
    6 июн 2008
    Сообщения:
    465
    Симпатии:
    172
    что именно за три точки? что именно передется ? поподробней плз, меня как раз этот запрос и интересует
     
  6. silent9

    silent9 Постоялец

    Регистр.:
    7 июн 2008
    Сообщения:
    136
    Симпатии:
    10
    смотря какие поля у тебя в базе
    после проверок, $val должно содержать email

    insert into mail values (NULL,'$val','$time','$url','0')
     
  7. raai

    raai Создатель

    Регистр.:
    21 сен 2008
    Сообщения:
    11
    Симпатии:
    2
    Регулярки составлять умеешь? В результате работы регулярки, получишь массив со всеми имайлами на странице. Удалить повторяющиеся можно функцией php array_unique($your_array) - она вернёт массив без повторяющихся значений.

    Затем делаешь этому массиву implode(', ', $your_array) и запихиваешь полученную строку в базу.
     
    unsiker нравится это.
  8. unsiker

    unsiker

    Регистр.:
    6 июн 2008
    Сообщения:
    465
    Симпатии:
    172
    Может небольшой офтоп, но просьба админам закрыть глаза на этот мой маленький недочет.

    у меня возникла какая то проблема с мускулом, а именно парсер дергает с рускоязычных страниц руский текст. при заносе в базу текст отображается как "????????? ????? ???? ???? ???" кодировка поля ср1251_general_ci менял на utf-8_general_ci, но проблема осталась. Что не так? где проблема роется?
     
  9. raai

    raai Создатель

    Регистр.:
    21 сен 2008
    Сообщения:
    11
    Симпатии:
    2
    Чтобы выяснить, в чём проблема, нужно знать:

    В какой кодировке сайт, который ты грабишь
    В какой кодировке у тебя написан тот самый пхп-скрипт
    А также значения глобальных переменных MySQL character set client, character set connection, character set results, collation connection
     
  10. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    попробуй перед записью использовать функцию iconv()
     
Статус темы:
Закрыта.