Файл: inc/write_rss.php
Строк: 38
<?php
function print_rss($url_rss,$file_rss,$hclock,$kol_print_news)
{
//$url_rss - URL-адрес RSS потока
//$file_rss - адрес файла для хранения RSS-новостей
//$hclock - время обновления, в часах
//$kol_print_news - количество выводимых новостей
if (!file_exists($file_rss) || ( filemtime($file_rss) + $hclock*60*60 < time() ) )//если файл не сохраняли, то сохраняем на локальном сервере или если существует, то проверяем устарел ли файл (не более ли Х часов назад он был записан)
{
if (@!copy ($url_rss,$file_rss))
return (false);
$text_rss=file($file_rss);
$text_rss=implode("",$text_rss);
//преобразуем кодировку данных
//если не нужно конвертировать кодировку, то комментируем ниже идущее условие или редактируем
if (preg_match('/<?xml[^>]+encoding[s]*=[s]*("|')windows-1251("|')[^>]+?>/i', $text_rss))
{
$text_rss = iconv("cp1251", "utf-8", $text_rss);
file_put_contents($file_rss, $text_rss);//пишем данные обратно в файл
}
}
$text_rss=file($file_rss);
$text_rss=implode("",$text_rss);
$url_image = "";
$image_is=preg_match("#<image>(.*?)</image>#is",$text_rss,$image_m);
if ( $image_is )
{
$image_url_is = preg_match("#<url>(.*?)</url>#is",$image_m[0],$image_t);
if ( $image_url_is )
$url_image = $image_t[1];
}
$mas_item=array();
preg_match_all("#<item>.*?</item>#is",$text_rss,$mas_item);
$one_item=array();
$t="";
$t.=( $url_image ? "<div><img src='".$url_image."' ></div>" :"");
$kol=0;
if (sizeof($mas_item)>0)
{
foreach ($mas_item[0] as $one_item)
{
$date = "";
$kol++;
$t_is=preg_match("#<title>(.*?)</title>#is",$one_item,$title);
$l_is=preg_match("#<link>(.*?)</link>#is",$one_item,$link);
$d_is=preg_match("#<description>(.*?)</description>#is",$one_item,$description);
$date_is=preg_match("#<pubDate>(.*?)</pubDate>#is",$one_item,$date_t);
if ($t_is && $l_is)
{
$title[1]=preg_replace("#<![CDATA[(.*?)]]>#eis","'\1'",$title[1]);
$link[1]=preg_replace("#<![CDATA[(.*?)]]>#eis","'\1'",$link[1]);
$description[1]=preg_replace("#<![CDATA[(.*?)]]>#eis","'\1'",$description[1]);
if ( $date_is )
$date = strtotime($date_t[1]);
$t.="<div><a href='".$link[1]."' target='_blank'>".$title[1]."</a>
<br>"
.$description[1]
.( $date ? "<br>".date("d.n.Y",$date) : "" )
."</div>";
}
if ($kol >= $kol_print_news) break;
}
}
echo ($t);
return (true);
}