[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: rss - канал
ak167
Всем привет. Вот занялся созданием rss-канала для своего блога. Нашел в интернете описание того, какие тэги в нем должны быть и описание, но у меня возникли некоторые вопросы:

1. В инструкции было указано, что в <item> информацию в поле <description> надо выводить, предварительно пропустив через функцию stripslashes. Я так и сделал и теперь, если я в блоге создаю тему с картинками, то при просмотре rss эти картинки загружаются. Так и должно быть?
Вот мой rss-канал http://antizlo.ru/rss.php
а вот rss всем известного блогера ibigdan'a http://ibigdan.livejournal.com/data/rss у него теги "img" так и остаются экранированными и картинки поэтому не отображаются.
Картинки должны отображаться или тэг "img" должен быть экранирован?

2. Я так нигде не нашел информацию о том, каким должен быть сам файл rss. Видел разные варианты: rss.rss и rss.xml
Я же создал файл rss.php Это правильно?

3. В каком формате выводить время последнего обновления?
$date=date('d.m.Y в H:i');
Так правильно?

4. У меня почему-то не отображаются заголовки тем между тэгами "<title>"


Выкладываю код. Проверьте, пожалуйста, что в нём неправильно. Сам понять не могу. Может действительно нужно делать не rss.php a rss.xml

<?php

echo "<?xml version=\"1.0\" encoding=\"windows-1251\" ?>\r\n";
echo "<rss version=\"2.0\">\r\n";
echo "<channel>\r\n\r\n";

echo "<title>Antizlo.ru - блог Алексея Колесникова</title>\r\n";
echo "<link>http://antizlo.ru</link>\r\n";
echo "<description>Блог и сайт Алексея Колесникова</description>r\n";
echo "<language>ru</language>";
echo "<webMaster>wqq@ya.ru</webMaster>";
echo "<copyright>Copyright 2007-2010, antizlo.ru</copyright>\r\n\r\n";

echo "<image>\r\n";
echo "<title>Antizlo.ru - блог Алексея Колесникова</title>\r\n";
echo "<url>http://antizlo.ru/pic/ok.png</url>\r\n";
echo "<width>48</width>";
echo "<height>48</height>";
echo "<description>Antizlo.ru - блог Алексея Колесникова</description>\r\n";
echo "<link>http://antizlo.ru</link>\r\n";
echo "</image>\r\n\r\n";


include 'db_settings.php';

$sql="SELECT id, name, thumbs, time FROM $db_blog WHERE see='1' ORDER BY id DESC LIMIT 1, 10";
$result=mysql_query($sql, $connect);

while($item = mysql_fetch_array($result))
{
$descr = "";
$descr = stripslashes($item["thumbs"]);
$name="";
$name = htmlspecialchars($item["name"]);
$time="";
$time=date('d.m.Y в H:i', $item["time"]);

echo "\r\n<item>\r\n";
echo "<title>".$name."</title>\r\n";
echo "<link>http://antizlo.ru/blogview.php?id=".$item["id"]."</link>\r\n";
echo "<description>".$descr."></description>\r\n";
echo "<pubDate>".$time."</pubDate>\r\n";
echo "</item>\r\n\r\n";
}
echo "</channel>\r\n";
echo "</rss>\r\n";

?>




Спустя 25 минут, 1 секунда (6.06.2010 - 19:33) Unlikely написал(а):
Дата должна быть "Sun, 30 May 2010 11:00:45 +0700".
Майсикюэловский datetime преобразовать можно так:
$date = date("r", strtotime($feeds_row['date']));


rss.php, rss.xml значения никакого не имеет. Если php скрипт то надо посылать хэдэр:
header('content-type: application/rss+xml');



можно не вызывать кучу echo, а вывести всё тремя штуками.
echo "<?xml version=\"1.0\" encoding=\"windows-1251\" ?>
<rss version=
\"2.0\">
<channel>

<title>Antizlo.ru - блог Алексея Колесникова</title>
<link>http://antizlo.ru</link>
<description>Блог и сайт Алексея Колесникова</description>
<language>ru</language>
<webMaster>wqq@ya.ru</webMaster>
<copyright>Copyright 2007-2010, antizlo.ru</copyright>

<image>
<title>Antizlo.ru - блог Алексея Колесникова</title>
<url>http://antizlo.ru/pic/ok.png</url>
<width>48</width>
<height>48</height>
<description>Antizlo.ru - блог Алексея Колесникова</description>
<link>http://antizlo.ru</link>
</image>"
;

и тд.

Спустя 6 минут, 55 секунд (6.06.2010 - 19:40) ak167 написал(а):
Unlikely, спасибо!)))
А Вы знаете, почему не отображаются название тем, которые между тэгами <title>? И нужно ли экранировать "<img>" или правильнее будет его неэкранировать, чтобы отображались не сами тэги а картинки?

Спустя 5 минут, 19 секунд (6.06.2010 - 19:46) Unlikely написал(а):
ak167
В данный момент ваш фид вообще ничего не отображает. Добавьте хэдер.
И в итемах должен присутствовать тег </guid>. Это как бы уникальный идентификатор, можно туда линк на статью вставлять например.

Спустя 53 секунды (6.06.2010 - 19:47) ak167 написал(а):
Unlikely, после того как я вписал в код
header('content-type: application/rss+xml');
все стало отображаться в xml-формате. В rss на livejournal.ru все отображаеться по-другому. Мой rss сможет проиндексировать яндекс?

Спустя 3 минуты, 37 секунд (6.06.2010 - 19:50) Unlikely написал(а):
<img> мне кажется вобще не должны присутствовать в фиде. Я об этом не читал, точно сказать не могу. Думаю лучше экранировать.

Спустя 14 секунд (6.06.2010 - 19:50) ak167 написал(а):
Цитата (Unlikely @ 6.06.2010 - 16:46)
ak167
В данный момент ваш фид вообще ничего не отображает. Добавьте хэдер.
И в итемах должен присутствовать тег </guid>. Это как бы уникальный идентификатор, можно туда линк на статью вставлять например.

Unlikely, сделал. Правда так и не понял какая разница между link и guid.

Спустя 11 минут, 13 секунд (6.06.2010 - 20:02) Unlikely написал(а):
Ну оставьте application/xhtml+xml и не экранируйте img на жж нормально всё вроде smile.gif

link и guid нужны обе.

Спустя 4 минуты, 30 секунд (6.06.2010 - 20:06) Unlikely написал(а):
На счёт <title> не знаю. Вроде все правильно.

Спустя 12 минут, 36 секунд (6.06.2010 - 20:19) Unlikely написал(а):
Кстати на жж кажется description через htmlspecialchars пропущен а у вас stripslashes

Спустя 8 минут, 42 секунды (6.06.2010 - 20:27) ak167 написал(а):
Спасибо! Заработало! Добавил даже в яндекс к себе в яккаунт ( http://mail.yandex.ru/lenta/add )
Все ок!)))

Спустя 5 минут, 11 секунд (6.06.2010 - 20:33) Unlikely написал(а):
ak167
http://validator.w3.org/feed/check.cgi вбейте там свой фид и почитайте что напишет
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.