RSS информер на сайт

Тема в разделе "Веб-дизайн", создана пользователем Slavalist, 3 июл 2010.

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

    Slavalist Создатель

    Регистр.:
    1 фев 2009
    Сообщения:
    42
    Симпатии:
    2
    Вообщем такая ситуация, есть сайт на который надо установить новостную ленту с другого сайта, чтобы она в автоматическом режиме обновляло новости, вот их RSS лента, как мне это сделать? Подойдут любые средства php, javascript и т.д.
     
  2. gls

    gls Комбат

    Регистр.:
    11 янв 2007
    Сообщения:
    557
    Симпатии:
    280
    заинклудь этот фай, прежде указав источник и кол-во новостей.
    PHP:
    <?php
    function getItemData($item){
        
    $row = array();
        foreach(
    $item->childNodes as $e){
            if(!(
    $e->nodeType == XML_ELEMENT_NODE && 
                 
    $e->firstChild && 
                 
    $e->firstChild->nodeType == XML_TEXT_NODE)) continue;
            
    $row[$e->tagName] = $e->firstChild->data;
        }
        return 
    $row;
    }

    $j=6//число выводимых новостей, если указано 6, то выводится 5
    $dd DOMDocument::loadXML(file_get_contents('http://site.ru/rss/'$j)); // источник новостей


    $res $dd->getElementsByTagName('item');
    $g=0;

    foreach(
    $res as $pos => $e){
    $g++;
        
    $row getItemData($e);
        if (
    $g==$j){break;}
    ?>
    <b><a href="<?=$row['link']?>" target="_blank"><?=$row['title']?></a></b><br />
    <?=$row['description']?>...
    <br /><br />
    <?
    }
    ?>
     
    alexz15 и MasterWEB нравится это.
  3. katrukhin

    katrukhin

    Регистр.:
    6 июн 2010
    Сообщения:
    168
    Симпатии:
    22
    Можешь воплотить и на JavaScript, есть много примеров с помощью jQuery
     
  4. Slavalist

    Slavalist Создатель

    Регистр.:
    1 фев 2009
    Сообщения:
    42
    Симпатии:
    2
    Спасибо скрипт работает) Вопрос только как туд добавить чтобы выводилась дата и время добавления новости?
     
  5. gls

    gls Комбат

    Регистр.:
    11 янв 2007
    Сообщения:
    557
    Симпатии:
    280
    вставь в нужное место
    PHP:
    <?=$row['pubDate']?>
     
    Slavalist нравится это.
  6. MasterWEB

    MasterWEB Создатель

    Регистр.:
    16 дек 2007
    Сообщения:
    17
    Симпатии:
    0
    Благодарю! Давно искал.. Вот еще бы прикрутить импорт в базу данных новостей.
     
  7. onyx1337

    onyx1337 Создатель

    Регистр.:
    25 дек 2009
    Сообщения:
    22
    Симпатии:
    2
    а можно как нибудь ограничеть кол-во символов отображаемых в <?=$row['description']?>
     
  8. KingLink

    KingLink Создатель

    Регистр.:
    21 июн 2010
    Сообщения:
    46
    Симпатии:
    5
    А что у вас за сайт? Всмысле, на каком движке построен?

    Тогда можно будет дать точный ответ по импорту новостей в вашу базу
     
  9. REBOOT

    REBOOT Прохожие

    у меня дле
     
  10. poolemet

    poolemet Создатель

    Регистр.:
    12 июн 2010
    Сообщения:
    36
    Симпатии:
    3
    RSS граббер для DLE http://dle.org.ua/engine/download.php?id=8
    Модуль работает в 3 этапа:
    1. Собирает все новости из rss канала, если заданы начальный и конечные шаблоны идёт по ссылке на полную новость, если нужно авторизируется и собирает данные.
    2. Пользователь выбирает необходимые ему новости и если нужно изменяет.
    3. Сохраняет полученные новости в базе при этом если в новостях встречаются картинки и если разрешено в настройках то сливает все картинки на сервер и закрепляет за новостью. Установка: загрузить все файлы из папки "uploads".
    и запустить http://сайт/install.php.
    Если будет ошибка "Fatal error: Call to undefined method ParseFilter::safeSQL() in /htdocs/engine/inc/plugins/rss.functions.php on line 153" то лечить в /engine/classes/parse.class.php так
    Найти код: "function filterTags($source) {
    $preTag = NULL;
    $postTag = $source;
    $tagOpen_start = strpos($source, '<');
    while($tagOpen_start !== FALSE)
    "
    и выше добавить Для MySQL 5:
    "function safeSQL( $source )
    {
    if ($this->db_id) return mysqli_real_escape_string ($this->db_id, $source);
    else return mysql_escape_string($source);
    }
    "
    Для MySQL 4:
    "function safesql( $source )
    {
    if ($this->db_id) return mysql_real_escape_string ($source, $this->db_id);
    else return mysql_escape_string($source);
    }
    "

     
Статус темы:
Закрыта.