|
 |
Путь: Шпаргалки
Шпаргалки
Автор: - 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.
|
|