Jump to content
Дизайн и модификация Invision Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
KEViN

Экспорт RSS на сайт

Recommended Posts

Я сгенерировал rss новостной канал и решил его добавить на сайт, чтобы он сразу читался и показывался на сайте. Но кода я так не получил кроме как кривой ссылки http://www.cudremo.ru/forum/index.php?act=rssout&id=1, где даже окончание не на xml

Всяческие сервисы не могут сгенерировать java код или какой ещё либо чтобы верно работал скрипт.

Может быть кто знает как эту проблему исправить?

Share this post


Link to post

Не ужели ни кто не знает ответа?

Share this post


Link to post

Это не кривая ссылка, это ссылка потока rss - она иначе устроена.

Ссылка потока с этого форума такая же.

И она работает прекрасно, добавляется в rss потоки и читается в rss ленте.

Но как добавить поток rss в его формате на сайт, не имею представления.

Share this post


Link to post

Жаль. А нельзя эту ссылку как-то преобразовать в окончание .rss? Тогда проблема решена. У меня кстати последняя версия форума, а вот только толку мало от этого. Авторы классно все замутили, только не до конца <_< Такая сложная работа ради пустячков, ладно

Share this post


Link to post

Создай файл rss-parser.php с кодом

<?php
function alex_clean($exp, $code)
{
	preg_match($exp, $code, $out);
	if(isset($out[1]))
	{
		$out[1]=strtr($out[1],array('<![CDATA['=>'',']]>'=>''));
		return trim($out[1]);
	}
	else
	{
	return '';
	}
}
function alex_parse($rss_cont,$limit)
{
	$chn_tags=array('title','link','description','language','copyright','pubDate','lastBuildDate');
	$itm_tags=array('guid','pubDate','title','link','description','comments');
	if($rss_content = $rss_cont)
	{
		//Parse tag <channel>
		preg_match("'<channel.*?>(.*?)</channel>'si", $rss_content, $out_channel);
		foreach($chn_tags as $channeltag)
		{
			$temp=alex_clean("'<$channeltag.*?>(.*?)</$channeltag>'si",$out_channel[1]);
			if($temp !='')
			{
				$result[$channeltag]=$temp;
			}
		}
		//Parse tag <item>
		preg_match_all("'<item(| .*?)>(.*?)</item>'si", $rss_content, $items);
		$rss_items=$items[2];
		$i=0;
		$result['items']=array();
		foreach($rss_items as $rss_item)
		{
			if ($i < $limit || $limit == 0)
			{
				foreach($itm_tags as $itemtag)
				{
					$temp = alex_clean("'<$itemtag.*?>(.*?)</$itemtag>'si", $rss_item);
					if($temp !='')
					{
						$result['items'][$i][$itemtag]=$temp;
					}
				}
				$i++;
			}
		}
		return $result;
	}
	else
	{
		return false;
	}
}
function alex_rss($url, $limit)
{
	// инициализация сеанса
	$ch = curl_init();
	// установка URL и других необходимых параметров
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	ob_start();
	// загрузка страницы и выдача её браузеру
	curl_exec($ch);
	// завершение сеанса и освобождение ресурсов
	curl_close($ch);
	$rss_cont = ob_get_contents();
	ob_end_clean();


	$rss = alex_parse($rss_cont, $limit);
	if(@$rss)
	{
		$html  = "\n\n<hr><table border=0 width=100%><tr><td>".'<b><font color="#000000" size="4"><span style="text-decoration: none;"><a href="'.$rss[link].'">'.$rss[title].'</a></span></font><b> ('.$rss[pubDate].')<br>'.$rss[description].'<br>Последнии десять новостей:</td></tr>';
		for($i=0; $i<$limit; $i++)
		{
			$html .= "\n<tr><td>";
			$html .= "\n".$rss[items][$i][pubDate].'<br>';
			$html .= "\n".'<b><a href="'.$rss[items][$i][link].'">'.$rss[items][$i][title].'</a></b><br>';	
			$html .= "\n".$rss[items][$i][description];
			$html .= "\n<br></td></tr>";
		}
		$html .= "\n</table>";
		return $html;   
	}   
	return false;
}

?>

На странице размести код

<? include 'rss-parser.php'; /* подразумевается что парсер имеет такое имя файла */ ?>
<? print alex_rss("http://www.cudremo.ru/forum/index.php?act=rssout&id=1",10); ?>

Share this post


Link to post

Спасибо :rolleyes:

Когда код большой, лучше заменять тег code на codebox

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...