Парсер праздников

Тема в разделе "PHP", создана пользователем Дмитрий Кесаев, 2 фев 2012.

Модераторы: latteo
  1. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.265
    Написал от делать нех, парсер праздников с calend.ru
    Выводит только дату и заголовок.

    Может кому нить пригодится :D

    PHP:
    <html>
    <head></head>
    <body>
    <?php
    function browser($url) {
    $url="http://www.calend.ru/";
    $ch curl_init($url);
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
    $html curl_exec($ch);
    curl_close($ch);
    return 
    $html;
    }
    preg_match_all('~<h1>(.*?)</h1>~is'browser($url), $data);
    preg_match_all('~<div>[^>]*?<a[^>]*?title="(.*?)">~is'browser($url), $text);
    print 
    implode($data[1]);
    echo 
    "&nbsp;и мы отмечаем праздники:<br /><br />";
    //print implode('<br />', $text[1]); //выводит все праздники
    print implode('<br />'array_slice($text[1], 03)); //выводит первые три праздника
    ?>
    </body></html>
     
    parks, gorenski и maxx2205 нравится это.
  2. Vladimir-AWM

    Vladimir-AWM Писатель

    Регистр.:
    11 фев 2012
    Сообщения:
    5
    Симпатии:
    0
    Там же есть RSS, лучше от туда брать и выводить информацию.
     
  3. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.265
    Я не смотрел - rss! Вернее не знал даже)))
    Касаемо всяческих лент, виджетов, я против внешних ссылок и подобного!
    Для меня парсер - оптимальный вариант + мало места и ресурсов использует.
     
  4. Vladimir-AWM

    Vladimir-AWM Писатель

    Регистр.:
    11 фев 2012
    Сообщения:
    5
    Симпатии:
    0
    Внешние ссылки необязательно оставлять, вот как пример:

    PHP:
    $rss simplexml_load_file("http://www.calend.ru/img/export/calend.rss");
     
    echo 
    "<b>Ближайшие праздники:</b><br />";
     
    foreach (
    $rss->channel->item as $item) {
        echo 
    iconv("UTF-8""Windows-1251"$item->title)."<br />";
    }
    На всякий случай адреса рсс:
    Праздники - w w w.calend.ru/img/export/today-holidays.rss
    Именины - w w w.calend.ru/img/export/today-names.rss
    Памятные события - w w w.calend.ru/img/export/today-events.rss
    Дни городов - w w w.calend.ru/img/export/today-citydays.rss