::: PHP.com.ua - учимся вместе. ::: ::: PHP.com.ua - учимся вместе. :::



 
   - Разработка CRM для туристического бизнес...
  - тестування по прив"язці до часу...
  - СРОЧНО! Требуется талантливый PHP програ...
  - Оплачу FLASH-сайт под ключ.
  - выборка одним запросом нескольких похожи...
  - функции верификации строк.
  - Помогите вытянуть скрипт отправки почты ...


Главная
Новости
Статьи
Шпаргалки
Файлы
О проекте
Форум
Футболки


FREEhost.com.ua - купил хостинг 10 у.е. на Begun в подарок.

iName.com.ua - регистрация доменных имен и хороший хостинг.

Библиотека программиста - нужный вам исходник или документация по необходимому для вас языку программирования.

Designclub - Клуб дизайнеров Украины.

Регистрация доменов
Хостинг

 HowtoForge.ORG.UA - Это первый Украинский ресурс развития open source программного обеспечения


Путь: Шпаргалки

Шпаргалки

Автор: - Sych
Дата публикации - 10.05.2005
Просмотров: - 9733

Разбор RSS файла на примере новостей с php.net


На многих сайтах сейчас можно встретить такую надпись:
[quote]Наша лента новостей (фид) в формате RSS доступна по адресу - http://server/export/rss.xml[/quote]
Это означает что разработчики сайта не поленились и сделали "человеческий экспорт новостей". Теперь если Вы захотите отображать чьи то новости у себя на сайте - то можете сделать это очень просто.

[php]
// кешируем RSS файлик
// место куда пишем файлик кэша
$filename = $_SERVER['DOCUMENT_ROOT']."/cache/phpnews.rss";

// проверяем насколько старый файлик
$modif=time()-@filemtime ("$filename");

// если в кэше нет файла или он слишком старый - обновляем
if(!file_exists($filename) || $modif>"3600")
  {
   $rss = file_get_contents("http://www.php.net/news.rss");
    
   $handle = fopen ("$filename", "w");
   
   fwrite($handle, $rss);
    
   fclose($handle);
  }


// подключаем либу из набора PEAR для разбора rss
require_once("XML/RSS.php");
    
    $rss =& new XML_RSS("$filename");

    $rss->parse();
                       
    foreach ($rss->getItems() as $value) {
    
            //VAR_DUMP($value); exit;  //- это так на всякий случай если надо посмотреть что там лежит :-)
             
            // формируем строку с новостями
            $page = $page."<b>".$value['dc:date']."</b><a href=\"".$value['link']."\" class=\"menu\">"." ".$value['title']. "</a><br>" .$value['description'] . "\n";
    }   

// выводим все что получили
echo"$page";
[

/php]

В данном скрипте продемонстрирована основная идея работы с XML-RSS новостными файлами, которую при большом желании можно развить до неимоверных размеров. :-)

Если у вас есть возможность использовать PHP5 тогда чтение RSS файлов становится еще проще. Для этого мы используем Simple XML.

[php]
// кешируем RSS файлик
// место куда пишем файлик кэша
$filename = $_SERVER['DOCUMENT_ROOT']."/cache/phpnews.rss";

// проверяем насколько старый файлик
$modif=time()-@filemtime ("$filename");

// если в кэше нет файла или он слишком старый - обновляем
if(!file_exists($filename) || $modif>"3600")
  {
   $rss = file_get_contents("http://www.php.net/news.rss");
    
   $handle = fopen ("$filename", "w");
   
   fwrite($handle, $rss);
    
   fclose($handle);
  }

// читаем файлик с помощью Simple XML
$RSS = simplexml_load_file($filename);

// для любопытных что жк мы там получили :-)
//VAR_DUMP($RSS);

foreach ($RSS->channel->item as $item) {

    // при надобности перекодируем полученные данные в нужную кодировку
    //$item->description = iconv("UTF-8","WINDOWS-1251",$item->description); 
    //$item->title       = iconv("UTF-8","WINDOWS-1251",$item->title); 

    //формируем ссылку и выводим данные   
    echo "<a href=\"".$item->link."\">".$item->title."</a><br>$item->description<br><br>";

    }[

/php]



Обсудить в ФОРУМе - комментариев ()


Путь: Шпаргалки

Если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Контакты Design by webFaction Ukrainian PHP Group 2004-2005