Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Создать rss для сайта.


Автор: Enya 7.7.2006, 11:08
Вот. Есть сайт. Есть новости. Задумались над созданием rss-ленты.
Помогите советом. smile 

Может кто делал? Поделитесь опытом. 

Автор: Weaver 7.7.2006, 11:25
Делал rss-ленту.  rss - это просто xml.
Делается это очень просто, стоит лишь посмотреть что-либо готовое.
Например новости на сайте rin.ru,vz.ru  или на yandex'e
Каких-нибудь особенностей нет. 
Создаете xml-документ и подключаете его. Готово. 

Автор: wil 7.7.2006, 11:37
я юзаю это - http://www.bitfolge.de/rsscreator-en.html 

Автор: Weaver 7.7.2006, 11:50
Простой пример:

Код

<?php
 Header("Content-type: text/xml");
 echo '<?xml version="1.0" encoding="windows-1251"?>';
?>


<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "../files/dtd/rss-0.91.dtd">
<rss version="2.0">
<channel>
<title> your title </title>
<link><?php echo 'http://'.$_SERVER['SERVER_NAME'];?></link>
<description> description </description>
<language>ru-ru</language>


<?php

$fop=file('news/news.data');//файл c новостями 
 /* вид такой 
 
01.03.2005<!--##--> Наступила весна! ....
23.03.2005<!--##--> ...там - тарам.....  :).... 
 */

$cc1=0;
 if (isset($_GET['l10']))
 {
  $cc1=count($fop)-10;//последние 10 нововстей
 }
 for($it=count($fop)-1; $it>$cc1;$it--)
 {
  if ($it>=0)
  echo "\n<item>\n<title>";
  $nb=strip_tags(ereg_replace("\r\n","",$fop[$it]));
  $nb=str_replace("&raquo;"," \"",$nb);
  $nb=str_replace("&laquo;"," \"",$nb);

  $nb=str_replace("&amp;"," and ",$nb);
  $nb=str_replace("&"," and ",$nb);

  echo substr($nb,11,25),"...";
  echo "</title>\n<link>";
  echo 'http://'.$_SERVER['SERVER_NAME'];
  echo "/?id=news&amp;n=$it</link>\n<description>";
  echo chop(substr($nb,11));
  echo "</description>\n<pubDate>".substr($nb,0,10)."</pubDate>\n</item>";
 }
?>
</channel>

</rss> 
 

Автор: Enya 7.7.2006, 12:50
Weaver, спасибо за простой примерчик.

У меня статьи в БД хранятся, тогда вместо 
Код

<?php
$fop=file('news/news.data');//файл c новостями 
 /* вид такой 
 
01.03.2005<!--##--> Наступила весна! ....
23.03.2005<!--##--> ...там - тарам.....  :).... 
 */

Делать SQL запрос в БД?

Добавлено @ 12:52 
Цитата
Создаете xml-документ и подключаете его. Готово.
Создать xml-документ не сложно по примерам с других газет.
А как его подключить? с помощью php? 

Автор: Enya 7.7.2006, 13:47
Цитата(wil @ 7.7.2006,  11:37)
я юзаю это - http://www.bitfolge.de/rsscreator-en.html

Вот заюзал я этот класс feedcreator.class.php по созданию RSS-ленты.
Так вот он там запрашивает типа ссылку на новость. А в таблице новостей (news) у меня только id-шка
Ссылка на новость имеет такой вид:
Цитата

http://www.nasha.lv/article.php?id=558695

А в коде это так выглядит
Код

$res = mysql_query("SELECT * FROM news ORDER BY time_add DESC");
while ($data = mysql_fetch_object($res)) {
    $item = new FeedItem();
    $item->title = $data->title;
    $item->link = $data->id;
    $item->description = $data->text;
    $item->date = $data->time_add; 
    $item->source = "http://www.nasha.lv";
    $item->author = "НГ";
    
    $rss->addItem($item);
}
Мне бы в 
Код

$item->link = $data->id; 
припоять приставочку http://www.nasha.lv/article.php?id= 

Автор: wil 7.7.2006, 13:56
так и пиши 
Код

$item->link = "http://www.nasha.lv/article.php?id=".$data->id;  
 

Автор: Enya 7.7.2006, 14:17
wil, сделал. А что вот эта за ошибка? Может я в настройках чего пропустил?
Цитата

The XML page cannot be displayed 
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later. 


--------------------------------------------------------------------------------

System does not support the specified encoding. Error processing resource 'http://www.nasha.lv/rss1.php'. Line 1, Position...

 <?xml version="1.0" encoding=""?>

 

 

Автор: wil 7.7.2006, 14:37
Enya, ты как фид сохранаяешь? попробуй так
Код

$rss->saveFeed("RSS2.0", "feed.xml");
  

Автор: Enya 17.7.2006, 10:17
wil, странно, а теперь другая ошибка:
Цитата

XML Parsing Error: xml declaration not at start of external entity
Location: http://www.nasha.lv/rss1.php
Line Number 1, Column 2: <?xml version="1.0" encoding=""?>
-^
А с чём эта ошибка связанна. 

Автор: Enya 17.7.2006, 14:19
Цитата(wil @ 7.7.2006,  11:37)
я юзаю это - http://www.bitfolge.de/rsscreator-en.html

Вот, у меня что-то с кодировкой:
Цитата

XML Parsing Error: xml declaration not at start of external entity
Location: http://www.nasha.lv/rss1.php
Line Number 1, Column 2: <?xml version="1.0" encoding=""?>
-^
в коде, фаил feedcreator.class.php нашёл вот такую строчку, но что-то мне нифига не понятно smile 
Код

function createFeed() {
        global $config;     
        $feed = "<?xml version=\"1.0\" encoding=\"".$config->outputEnc."\"?>\n";

Поможите мне вот с этой ошибкой! smile  

Автор: wil 27.7.2006, 10:15
попробуй на 497-й строчке в файле feedcreator.class.php
Код

        /**
         * This feed's character encoding.
         * @since 1.6.1
         **/
        var $encoding = "windows-1251";
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)