Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

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

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

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

Рекомендованные сообщения

Опубликовано:
  • Автор

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

Опубликовано:

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

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

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

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

Опубликовано:
  • Автор

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

  • 2 недели спустя...
Опубликовано:

Создай файл 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); ?>

Опубликовано:

Спасибо :rolleyes:

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

Гость
Эта тема закрыта для дальнейших сообщений.

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.