Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: RSS
 
 автор: Akira   (13.01.2005 в 14:50)   письмо автору
 
 

А кто что знает о лентах новостях? RSS каков вообще принцип действия?

   
 
 автор: cheops   (13.01.2005 в 14:58)   письмо автору
 
   для: Akira   (13.01.2005 в 14:50)
 

antf писал парсер RSS-новостей:
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=639
а, заодно и просвещал тех кто не знал что это такое:
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=609

   
 
 автор: Akira   (13.01.2005 в 15:14)   письмо автору
 
   для: cheops   (13.01.2005 в 14:58)
 

Эх за кого же вы меня принемаете =Р Что же я не могу посикать?
Нет мне интересно как самому делать а не тырить =Р

   
 
 автор: cheops   (13.01.2005 в 15:45)   письмо автору
 
   для: Akira   (13.01.2005 в 15:14)
 

Новости эти представлены в виде xml-файла, его следует разобрать либо вручную, например, при помощи регулярных выражений, либо воспользовавшись расширением для работы с XML-файлами.

   
 
 автор: antf   (13.01.2005 в 19:07)   письмо автору
 
   для: Akira   (13.01.2005 в 15:14)
 

Вот пример rss-файла, который создает разработанная мною система экспорта новостей.

   
 
 автор: Akira   (13.01.2005 в 22:34)   письмо автору
 
   для: antf   (13.01.2005 в 19:07)
 

Я уже отрыл инфу =) Сам сделать rss новостей.
Все работает.
Забавно =)
И кстати если пользоваться Opera в качестве rss агента , то ей можно задовать проерку в периодичностью 5 мин =Р
[поправлено модератором]

   
 
 автор: antf   (13.01.2005 в 16:21)   письмо автору
 
   для: Akira   (13.01.2005 в 14:50)
 

Сейчас попробую написать о том, как построить RSS-файл. Подождите.

   
 
 автор: antf   (13.01.2005 в 18:54)   письмо автору
 
   для: Akira   (13.01.2005 в 14:50)
 

Вот, наконец-то, закончил. Представляю вам примерный рецепт создания rss-файла.
Если Вы хотите экспортировать информацию в формате RSS, то тут надо разобраться со значением каждого тега. Вот необходимая информация, которая поможет собрать rss-файл для экспорта на яндекс (для экспорта новостей на другие сайты формат файла может немного отличаться):
Вначале нужно добавить заголовок XML, который включает информацию о версии xml, а также кодировку (если кодировка не указана, считается, что новости представляются в кодировке utf-8). Также следует преобразовать все специальные символы во всех элементах rss-файла (функция htmlspecialchars()).
Пример заголовка:
<?xml version="1.0" encoding="windows-1251" ?>.
Корневым элементов rss-файла является тэг <rss> с указанием текущей версии и адреса сайта, на который экспортируются новости. В данном случае – это версия 2.0.
<rss version="2.0" xmlns:yandex='http://news.yandex.ru' >
Внутри элемента rss должен находится элемент <channel>, который содержит в себе некоторую служебную информацию и сами новости. Вот его структура:
<title> - название сайта-источника новостей.
Пример: <title>Ярославские новости</title>
Если Вы экспортируете новости только определенного типа, то нужно это отразить в заголовке.
Пример: <title>Ярославские новости: культура</title>

<link> - адрес сайта, с которого транслируются новости.
Например, <link>http://www.yarnews.ru</link>

<description> - описание сайта-источника. Одно предложение. Пример:
<description>Региональное информационное агентство 'РИА-Ярославль' </description>

Далее можно вставить картинку с логотипом издания. (Я при создании системы экспорта новостей данную возможность не использовал). Это делается при помощи элемента <image>, который в свою очередь включает тэги <url> - адрес картинки (будет в атрибуте alt), <title> - еще раз название сайта-источника, <link> - еще раз адрес сайта-источника. Пример:

<image>
    <url>www.mysite.ru/logo.gif
    <title>Новости моего сайта</title>
    <link>www.mysite.ru</link>
</image>

Логотип должен иметь большую ширину, чем высоту. Желательный размер 100-200 px

После того, как мы внесли всю служебную информацию, нужно добавлять сами новости. Их атрибуты заключаются в пару тегов <item></item>:
<title> - заголовок новости. Не допускается написание заголовка прописными буквами. Не допускается наличие точки в конце заголовка. В заголовке не должно быть ничего лишнего типа даты/времени сообщения и всяких неинформативных оборотов: обновлено, сенсация!!!!!!!!, срочно!!!.
Пример <title>Подводники поблагодарили Виктора Волончунаса</title>

<link> - адрес новости.
Пример: <link>http://www.mynewssite.ru/news/1293</link>

<description> - аннотация сообщения. Добавлять необязательно
Пример: <description>Благодарственное письмо мэру Ярославля Виктору Волончунасу пришло с Северного флота, от моряков-подводников - экипажа дизельной подводной лодки "Ярославль", с которой наш город много лет поддерживает добрые шефские связи.</description>

<author> - автор сообщения. Добавлять необязательно

<category> - рубрика сообщения. Добавлять необязательно. Одному сообщению – одна рубрика.
Пример: <category>власть</category>

<enclosure> - элемент для иллюстраций и видеофайлов. Необязателен. В одном элементе <item> может содержаться несколько таких элементов.
Пример <enclosure rl="http://www.mynewssite.ru/news1234/img.jpg" type="image/jpeg"/>

<pubDate> - Время публикации новости в формате RFC-822. Пример: <pubDate>Thu, 14 Oct 2004 15:53:00 +0300</pubDate>

<yandex:full-text> Полный текст сообщения сообщения. Обязателен.

Механизм экспорта: для экспорта новостей необходимо выложить rss-файл на сервер и обновлять его с определенной периодичностью. Файл должен быть доступен по http, его индексирование происходит каждые 10 мин. Файл, которые не удалось загрузить за 10 секунд, считается недоступным.

   
 
 автор: glsv (Дизайнер)   (13.01.2005 в 22:37)   письмо автору
 
   для: antf   (13.01.2005 в 18:54)
 

Здорово!
А не возражаете если мы это описание в статьи "засунем"? Многим интересно будет почитать. А то в форуме не всегда можно найти.

   
 
 автор: Akira   (13.01.2005 в 22:40)   письмо автору
 
   для: glsv (Дизайнер)   (13.01.2005 в 22:37)
 

Ссылке по-теме
http://www.bikman.ru/texts/techarticle/ljrssphp/
Пример rss парсера для ЖЖ.
http://www.bikman.ru/texts/techtranslation/rss20spec/
Спецификация RSS 2.0 (рус.)

   
 
 автор: Akira   (13.01.2005 в 22:51)   письмо автору
 
   для: Akira   (13.01.2005 в 22:40)
 

Прежде чем публиковать ту статью =) Надо ее отшлифовать ;)
<url> картинка должна закрываться </url>

Так же хочу заметить ,что rss несколько версий =)
Если кому надо могу еще линков по теме приложить ;)

   
 
 автор: Akira   (13.01.2005 в 23:15)   письмо автору
 
   для: Akira   (13.01.2005 в 22:51)
 

Да, для своих нужд пишу RSS для LiteForum.
Если надо выложу как сделаю ;)

   
 
 автор: cheops   (13.01.2005 в 23:23)   письмо автору
 
   для: Akira   (13.01.2005 в 23:15)
 

Классно, надо - а принцип действия его какой?

PS Смайлики прекрасно прижились на внутреннем форуме, где они обкатываются, в следующей версии LiteForum скорее всего будет полная поддержка смайликов, с возможностью их включения и выключения в системе администрирования.

   
 
 автор: Akira   (14.01.2005 в 16:42)   письмо автору
 
   для: cheops   (13.01.2005 в 23:23)
 

Рад слышать =) Я еще тут постепенно скин форума под себя делаб =))
А RSS просто =) Последние 25 тем на форуме =)
Очень я считаю удобным.
А то замучался заходить на сайт , а там нет сообщений =Р
Сразу говорю заточка будет на Opera =)
Как вы не знали? В Opera есть встроенный клиент rss =)
При обнавлении автоматически всплывает подсказка о том что на rss сайта обнавлен =)

   
 
 автор: cheops   (14.01.2005 в 16:57)   письмо автору
 
   для: Akira   (14.01.2005 в 16:42)
 

>Как вы не знали? В Opera есть встроенный клиент rss =)
/*с интересом просматривая менюшки*/ а где и как пользоваться?

   
 
 автор: Akira   (14.01.2005 в 17:20)   письмо автору
 
   для: cheops   (14.01.2005 в 16:57)
 

1-ый вариант зайдти на rss страницу. Пр: http://news.yandex.ru/index.rss
Opera запросит сообщение добавить ли страницу в ленту новостей. Ответим положительно.
2 -ой вариант Панель - Почта - Ленты новостей-Правый клик-добавить-вводим адрес rss файла.

   
 
 автор: Akira   (14.01.2005 в 17:31)   письмо автору
 
   для: Akira   (14.01.2005 в 17:20)
 

Да забыл спросить. Как вы определяете сколько не прочитанный сообщений для конкретного пользователя?

   
 
 автор: cheops   (14.01.2005 в 17:44)   письмо автору
 
   для: Akira   (14.01.2005 в 17:31)
 

Это осуществляется по временным отметкам time и last_time в таблице authors.
time — время последнего посещения посетителем форума, это поле обновляется при авторизации, и просмотре страниц форума, при ответах на сообщение;
last_time — время предыдущего последнего посещения, необходимое для вывода новых сообщений с момента последнего посещения участником форума; Поле last_time обновляется лишь в том случае, если с момента последнего обращения прошло более 20 минут. При этом оно получает значение равное предыдущему значению time. Такой механизм необходим для того, чтобы в течение одного сеанса просмотра (сопровождающегося активным просмотром страниц и ответом на сообщения), посетитель видел все новые сообщения форума. После прекращения сеанса, т.е. отсутствия активности посетителя более 20 минут ему будет предоставлена информация об новых сообщениях, появившихся с момента его последнего обращения к форуму.
Поле last_time извлекается в utils/topforum.php в переменную $lasttime для зарегистрированного посетителя, для не зарегистрированного постетителя эта переменная принимает значение текущего времени за вычетом двух часов. Далее если сообщение имеет дату меньше чем $lasttime - оно старое, если больше - новое.

   
 
 автор: cheops   (14.01.2005 в 17:34)   письмо автору
 
   для: Akira   (14.01.2005 в 17:20)
 

Хм... у меня наверное Opera старая, чего-то ничего не наблюдаю, какая верисия нужна?

   
 
 автор: Akira   (14.01.2005 в 18:13)   письмо автору
 
   для: cheops   (14.01.2005 в 17:34)
 

у меня 8 версия =) А вы попробуйте открыть rss адрес =) Тогда все само должно =)

   
 
 автор: cheops   (14.01.2005 в 18:45)   письмо автору
 
   для: Akira   (14.01.2005 в 18:13)
 

Не у меня на древней 7.11 вываливается просто содержимое страницы...

PS Надо будет занятся софтом, когда до жирного канала доберусь...

   
 
 автор: Akira   (14.01.2005 в 19:09)   письмо автору
 
   для: cheops   (14.01.2005 в 18:45)
 

Странные дела творяться =/
Сделал генерацию rss. Opera отказываеться читать =/ Пишу в xml статически. Все читает.
RSS Клиент видет все ок и в генерации и так =\

   
 
 автор: Akira   (14.01.2005 в 19:15)   письмо автору
 
   для: Akira   (14.01.2005 в 19:09)
 

У меня родилась идея смены имени форума =) Как на это смотрите?
ИМХО LiteForum хорошь для внутренного названиея =Р

   
 
 автор: Akira   (14.01.2005 в 19:36)   письмо автору
 
   для: Akira   (14.01.2005 в 19:15)
 

У вас в бд themes имеет ячейку и именем поста (name), так же posts имеет такуб таблицу.
Запрос такой
SELECT posts.name, posts.author, posts.id_theme, themes.id_forum, themes.name
FROM posts, themes, forums
WHERE posts.id_theme = themes.id_theme
AND themes.id_forum = forums.id_forum
LIMIT 0 , 25 

И как мне достать название топика?
Выводиться только содержимое топика.

   
 
 автор: cheops   (14.01.2005 в 20:03)   письмо автору
 
   для: Akira   (14.01.2005 в 19:36)
 

Тема уже слишком длинная, да и не по теме обсуждение уже идёт... отвечу в форуме о форуме.

http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1521

   
 
 автор: antf   (13.01.2005 в 23:30)   письмо автору
 
   для: Akira   (13.01.2005 в 22:51)
 

>Прежде чем публиковать ту статью =) Надо ее отшлифовать ;)
Благодарю за замеченный недочет

>Так же хочу заметить ,что rss несколько версий =)
>Если кому надо могу еще линков по теме приложить ;)
Да,неплохо бы :) Я лично, когда создавал модули, работающие с RSS, спецификации не нашел, видно плохо искал :), правда у меня были копии с требованиями к экспортным файлам RSS, которые принимает Яндекс. Я их и использовал при создании данного сообщения. Эту информацию можно найти по адресу http://partner.news.yandex.ru/agreement.pdf, но, к сожалению, этот ресурс запаролен, правда секретной информации и корпоративной тайны тут нет. Дословно его не цитировал, примеры приводил полностью свои, но все же многое оттуда подчерпнул.

   
 
 автор: antf   (13.01.2005 в 23:33)   письмо автору
 
   для: antf   (13.01.2005 в 23:30)
 

В принципе данная статья вместе с примером ориентирована на создание экспортного файла для Яндекса, который имеет свои особенности построения: отстутствие некоторых тегов, наличие тега <yandex:full-text>, особые требования к оформлению информации. Как видите, принципы его оформления несколько отличаются от официальной спецификации. Если нет никаких препятствий, связанных с тем, что я использовал источник, находящийся в запароленной директории, а также если не мешает тот факт, что формат rss-файла для Яндекса немного отличается от официальной спецификации (хотя отличие от официальной спецификации может являться признаком уникальности:), то в принципе можно оформить данное сообщение в отдельную статью вместе с примером в качестве реальной иллюстрации. Примерное название: "Структура rss-файла для экспорта новостей на http://news.yandex.ru"

   
 
 автор: antf   (13.01.2005 в 23:43)   письмо автору
 
   для: antf   (13.01.2005 в 23:33)
 

Ой, а ведь он вовсе не запаролен. Это мне так сказали при передаче копий, а я поверил. Правда там только текст самого соглашения, а приложения №1, которое я использовал там нет.

   
 
 автор: antf   (14.01.2005 в 04:40)   письмо автору
 
   для: antf   (13.01.2005 в 23:43)
 

Ммм… Конечно, приятно, когда после двух месяцев изучения web-программирования вообще и языка PHP в частности, ты уже создал систему импорта и эскпорта новостей в формате RSS серьезного и сложного в плане кода новостного сайта, спроектировал его внутреннюю баннерную систему, сделал простенький по декору сайт, с довольно сложной системой Backoffice, а тут еще предлагают на авторитетном сайте опубликовать твою статью. Но все же я должен признать, что статья из этого материала получается слабой. Во-первых тема слишком узкая. Далеко не всех посетителей заинтересует формат rss-файла, который принимает Яндекс, а кому это понадобится, те, я думаю, в первую очередь отправят письмо администраторам сайта http://news.yandex.ru, и необходимая информация охотно им будет выдана. Во-вторых, данный материал представляет собой вольное изложение одного документа. Я понимаю, что для того, чтобы представить что-нибудь своими словами и привести свои примеры, тоже нужны мозги, но статья получается намного интереснее, читабильнее, живее, когда в ней заключается какое-нибудь исследование, новый материал или, на худой конец, обобщение информации из нескольких источников. Такие вещи по-настоящему являются уникальными, и поэтому ценными. Вот если бы я сначала рассмотрел RSS в общем, затем перешел к особенностям употребления тегов (то есть какие теги, перечисленные в официальной спецификации используются чаще всего, а какие может быть, используются реже, а какие вообще не используются, сюда попали бы и новые теги, изобретенные экспортерами новостей), рассмотрел общие тенденции построения rss-файла (правила комбинирования элементов), а затем вывел бы общие рекомендации по построению rss-файла, исходя из уже имеющегося опыта, в заключение привел бы несколько различных примеров построения экспортного файла (можно было бы включить и этот). И, в довершение ко всему, сделал бы все это на материале нескольких источников, в том числе английских, французских и немецких, тогда бы было похоже на дело, и рядом с заголовком статьи нестыдно было поставить свое имя и фамилию. Так что со статьей пока повременим, а сообщение в теме пускай будет.

   
 
 автор: glsv (Дизайнер)   (14.01.2005 в 11:35)   письмо автору
 
   для: antf   (14.01.2005 в 04:40)
 

> Но все же я должен признать, что статья из этого материала получается слабой. Во-первых тема слишком узкая. Далеко не всех посетителей заинтересует формат rss-файла, который принимает Яндекс

Я, конечно, понимаю, что ничего сложного в RSS нет. Но так как времени (и необходимости) детально посмотреть на RSS у меня не было, то мне было-бы просто приятно почитать в общих словах — что это такое и из чего это состоит. Т.е. это был бы формат не подробной статьи, рассматривающей все возможные вопросы, а формат: "Краткое введение в тему". Это тоже интересно.

> Кому это понадобится, те, я думаю, в первую очередь отправят письмо администраторам сайта http://news.yandex.ru...

Кому понадобится могут залезь в поисковик и найдут все что им нужно :)
Точно также можно было рассуждать: кому понадобится PHP могут купить книгу и выучить PHP :)


> но статья получается намного интереснее, читабильнее, живее, когда в ней заключается какое-нибудь исследование, новый материал или, на худой конец, обобщение информации из нескольких источников. Такие вещи по-настоящему являются уникальными, и поэтому ценными. Вот если бы я сначала рассмотрел RSS в общем, затем перешел к особенностям употребления

Так то оно так. Но иногда, а порой и зачастую — лучшее враг хорошего.

Если все же надумаете написать большую и подробную статью, то мы с удовольствие ее опубликуем у себя на сайте.

   
 
 автор: sidPR   (22.08.2005 в 05:03)   письмо автору
 
   для: glsv (Дизайнер)   (14.01.2005 в 11:35)
 

а если нету некакого Rss файла на сайте с которого я хочю стинуть инфу а вся инфа к примеру в ручную или по средствам админ панели из Sql выводить в обычный html реально ли зделать Ленту новостей из таких сайтов?

   
 
 автор: cheops   (22.08.2005 в 13:06)   письмо автору
 
   для: sidPR   (22.08.2005 в 05:03)
 

Это реально и этому посвящено множество тем данного форума
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3110
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3137
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3181
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3836
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2960
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2761
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2369
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2731
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1817
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1728
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1780
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=926
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=946
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=834
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=705
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=538
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=426

   
 
 автор: KR0k   (04.10.2005 в 18:41)   письмо автору
 
   для: Akira   (13.01.2005 в 14:50)
 

А что делать если на хостинге запрещено открывать внешние файлы или используя функцию fopen открывать URL. Т.е allow_url_fopen = Off???

Р.S: Спасибо за RSS читалку, а может к ней прикрутить такую весч:
1. Сначала, надо проверить обновился ли RSS файл
2. Если обновился по записать его в new.rss уже на сервере.
3. Если нет, то прочитать файл new.rss

   
 
 автор: cheops   (05.10.2005 в 00:29)   письмо автору
 
   для: KR0k   (04.10.2005 в 18:41)
 

Менять хост на тот, которые поддерживает загрузку файлов с внешних хостов.

   
 
 автор: KR0k   (10.10.2005 в 15:18)   письмо автору
 
   для: cheops   (05.10.2005 в 00:29)
 

Если бы это было возможно......
Мне этот горе хостер прислал следующий код:

<?php
$fp 
fsockopen("www.example.com"80$errno$errstr30); if (!$fp) {
   echo 
"$errstr ($errno)<br />\n";
} else {
   
$out "GET / HTTP/1.1\r\n";
   
$out .= "Host: www.example.com\r\n";
   
$out .= "Connection: Close\r\n\r\n";

   
fwrite($fp$out);
   while (!
feof($fp)) {
       echo 
fgets($fp128);
   }
   
fclose($fp);
}
?>

Только вот как потом разпарсить, я незнаю

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования