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

Форум PHP

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

 

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

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

тема: Создание RSS
 
 автор: jaroslav   (03.09.2006 в 19:09)   письмо автору
 
 

Здравствуйте!

Посмотрел ссылки по RSS на Вашем форуме. Ничего не понятно. Раньше никогда не создавал. Объясните, пожалуйста, на пальцах, с чего начинать и как их создать.
Какое расширение должен иметь файл?


Создаю такой пример:




<?php
//прежде всего нужно указать в заголовке, что наш файл будет в XML формате.
header('Content-type: application/xml');

//затем впишем вступительную информацию:

$data="<?xml version=\"1.0\" encoding=\"windows-1251\" ?> ";
$data.= "<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">";
$data.= "<channel>";
$data.= "<title>Название сайта</title>";
$data.= "<link>Адрес сайта</link>";
$data.= "<description>Короткая информация о сайте</description>";
$data.= "<copyright>Праводержатель</copyright>";
$data.= "<language>ru</language>";
$data.= "<managingEditor>e-mail редактора</managingEditor>";
$data.= "<webMaster>e-mail вебмастера</webMaster>";

//теперь подключимся к нашей базе данных.

$link = mysql_connect ("localhost", "admin", "1234") or die("Не могу соединиться");
mysql_select_db("new");

//создадим запрос к базе на выдачу новостей

$query="SELECT * FROM name_base ORDER BY id_zakaz DESC";
$result = mysql_query($query);


//пройдемся по двадцати последним вытаскивая, то что нам нужно

for ($i=1; $i<10; $i++)
{

$row = mysql_fetch_array($result);
$date = $row[1];
$title = $row[2];
$text = $row[3];
$author = $row[4];


$data.="<item>";
$data.="<title>".$title."</title>";
$data.="<link>".$author."</link>";
$data.="<description><br>".$text."</description>";
$data.="<dc:creator>".$author."</dc:creator>";
$data.="<dc:date>".$date."</dc:date>\n\n</item>";
}

//закрываем базу
mysql_close($link);

//добавляем хвостовую информацию.
$data=$data."</channel></rss>";

//печататаем результат на экран. Все!
print($data);

?>

****************************************


И что с ним делать дальше?

Данные $date, $title, $text, $author - имеются в базе данных. Каким образом их вывести в браузер?

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


for ($i=1; $i<10; $i++)
{

$row = mysql_fetch_array($result);
$date = $row[1];
$title = $row[2];
$text = $row[3];
$author = $row[4];



Обсолютно не правильно! mysql_fetch_array(); Создаёт массив, но не с индексами 0,1,2,3,4 и т.д., а например name, pass и т.д. Я конечно незнаю, как у вас называются поля в БД, но уж врядли 0,1,2,3,4... а если вас леннь переписывать названия, то замените mysql_fetch_array(); на mysql_fetch_row();

   
 
 автор: Jaroslav   (03.09.2006 в 19:52)   письмо автору
 
   для: DEM   (03.09.2006 в 19:15)
 

Подскажите, как создать RSS ленту на сайте? Какое расширение должен иметь файл? Почему во всех примерах приводиться PHP код, а на сайтах с RSS лентами файлы имеют расширение XML?

   
 
 автор: Loki   (03.09.2006 в 19:58)   письмо автору
 
   для: Jaroslav   (03.09.2006 в 19:52)
 

Расширение - любое.

   
 
 автор: DEM   (03.09.2006 в 20:18)   письмо автору
 
   для: Jaroslav   (03.09.2006 в 19:52)
 

RSS - просто выводит файл XML... Обрабатывает этот файл РНР-скрипт (ну или другой, но в нашем случае РНР). То есть, файл в котором находятся эти ленты новостей XML, а файл обработчик пишется на РНР

   
 
 автор: Jaroslav   (03.09.2006 в 21:00)   письмо автору
 
   для: DEM   (03.09.2006 в 20:18)
 

А вы не могли бы привести простенький пример? Я знаю PHP и MySQL. Но абсолютно не знаю XML! В этом-то и вся проблема.

Почему если я пишу код на PHP (см. выше) и делаю расширение .XML, то браузер выводит:

***********************************************
Не удается отобразить страницу XML
Не удается просмотреть ввод XML с использованием списка стилей . Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее.

В текстовом комментарии обнаружен недопустимый знак. Ошибка при обработке ресурса ''http://127.0.0.1/namesite/1.xml''. Строка 2,Положение 3
//

***********************************************

   
 
 автор: Jaroslav   (04.09.2006 в 07:51)   письмо автору
 
   для: Jaroslav   (03.09.2006 в 21:00)
 

Подскажите, как создать RSS!?

   
 
 автор: cheops   (04.09.2006 в 12:35)   письмо автору
 
   для: Jaroslav   (03.09.2006 в 21:00)
 

Прикрепите сгенерированный XML-файл, чтобы было проще ориентироваться.

   
 
 автор: Jaroslav   (04.09.2006 в 12:44)   письмо автору
 
   для: cheops   (04.09.2006 в 12:35)
 

А как сгенерировать XML-файл?

   
 
 автор: cheops   (04.09.2006 в 12:58)   письмо автору
 
   для: Jaroslav   (04.09.2006 в 12:44)
 

Он у вас уже сгенерирован - нужно просто сохранить XML-страницу, где у вас ошибка и прикрепить её к сообщению в виде отдельного файла.

   
 
 автор: Jaroslav   (07.09.2006 в 21:48)   письмо автору
 
   для: cheops   (04.09.2006 в 12:58)
 

Здравствуйте!

Немного стал разбираться с RSS.
Уже идет создание XML файла. Файл имеет расширение .PHP – код в самом верху (в первом сообщении). Но если я файлу присваиваю расширение .XML, то появляются ошибки. Почему? Как поступать дальше? Доработать этот PHP файл, на сайте его выложить и дать ссылку, например rss.php? Это и будет RSS лента?

Расскажите, пожалуйста, поподробнее про такие строки:


$data.="<title>".$title."</title>";
$data.="<link>".$author."</link>";
$data.="<description><br>".$text."</description>";
$data.="<dc:creator>".$author."</dc:creator>";
$data.="<dc:date>".$date."</dc:date>\n\n</item>";

Какие еще могут быть?

Насколько я понял, строка:

$data.="<link>".$author."</link>";

указывает ссылку на страницу сайта, где можно прочитать данную новость целиком. А зачем вообще указывать описание новости, дату и т.д.?

При помощи какой-либо программы (у мня стоит Feeds) можно посмотреть название новостей. А потом при нажатии на ссылку перейти на сайт и просмотреть новость полностью.
Или описание новости можно просмотреть не заходя на сайт?
Как сделать так, чтобы описание было отформатировано при помощи тегов HTML?

Пока такие вопросы :)

   
 
 автор: cheops   (08.09.2006 в 01:47)   письмо автору
 
   для: Jaroslav   (07.09.2006 в 21:48)
 

title - название
link - ссылка
description _описание
creator - автор
date - дата публикации

Клиентов, читающих RSS-каналы достаточно много, как для людей, так и поисковых роботов. Некоторые клиенты читают всё, в том числе и описание, дата нужна для определения того, старая новость или новая.

Тэги в описании к сожалению применять нельзя, только простой текст.

   
Rambler's Top100
вверх

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