|
|
|
| Помогите разобраться!
Сделал я новости и комментарии, надо делать RSS.
У меня всё записывается в мускул!
Мне бы хотелось сделать так!
Что бы в RSS передавалась бы
1 Заголовок новости, у меня это обозначается переменной $title
2 Мини новости $mini_news
3 дата создания $data
Как мне это осуществить?
Читал что много версий этого RSS и хз запутался, может что то не так сделаю и так далее!
Пожалуйста объясните, это мне в файл как то писать надо или что?
Помогите, вот только ссылок не давайте, большую стать на форуме про RSS прочитал, про заголовки и так далее но не очень понял, а как это транслироваться будет или как это в общем происходит? | |
|
|
|
|
|
|
|
для: Panker
(20.09.2006 в 13:24)
| | На версии не обращайте внимания, любой RSS-клиент поддерживает все версии, просто возьмите наш RSS-файл и сделайте по аналогии. | |
|
|
|
|
|
|
|
для: cheops
(20.09.2006 в 13:27)
| | Тоесть мне просто надо создать файл rss.php допустим
и в него писать типа так
<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns="http://backend.userland.com/rss2" xmlns:yandex="http://news.yandex.ru">
<channel>
<title>НАЗВАНИЕ НОВОСТИ $TITLE</title>
<link>$ADRES/</link>
<description>$MINI_NEWS</description>
и потмо с новой строки опять писать
<title>НАЗВАНИЕ НОВОСТИ $TITLE</title>
<link>$ADRES/</link>
<description>$MINI_NEWS</description>
и потмо опять
<title>НАЗВАНИЕ НОВОСТИ $TITLE</title>
<link>$ADRES/</link>
<description>$MINI_NEWS</description>
Так ?
просто фал и простов него писать?
и вот ещё, зачем вот это xmlns:yandex="http://news.yandex.ru"? причём тут яндекс :)))) | |
|
|
|
|
|
|
|
для: Panker
(20.09.2006 в 14:06)
| | вот посомтрел статью как у ПХПББ сделана РСС но тоже не очень понятно :(
вот я написал так
<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns="http://backend.userland.com/rss2" xmlns:yandex="http://news.yandex.ru">
<channel>
<title>Форум PHP портала SoftTime</title>
<link>http://www.softtime.ru/forum/</link>
<description>Форум PHP портала SoftTime поддерживается авторами нескольких книг по PHP</description> <item>
<title>Статистика php&mysql для чайников</title>
<link>http://softtime.ru/forum/readrss.php?id=24844_1</link>
<description>Поиском искал, не нашел не чего!
Вопрос то в принципе у меня не большой, не прошу сделать всё :)
Нужно...</description>
<category>PHP</category>
<pubDate>Wed, 20 Sep 2006 15:32:32 +0400</pubDate>
<author>Panker</author>
</item>
|
да, захожу на этот файл через оперу мне пишут ошибку
Parse error: parse error, unexpected T_STRING in y:\home\kmk\www\xml.php on line 1
|
| |
|
|
|
|
|
|
|
для: Panker
(20.09.2006 в 15:32)
| | Если вы пишите PHP-файл, то эту строку необходимо выводить при помощи конструкции echo. | |
|
|
|
|
|
|
|
для: Panker
(20.09.2006 в 15:32)
| | Вот такая функция файл function_rss.php
<?php
//Подключение к базе и получение идентификатора соединения $conn//сложностей нет
$rss=true;//:-)
function build_rss($conn, $num){
$sql = mysql_query("SELECT * FROM `news` ORDER BY `date` DESC LIMIT $num");
$data=<<<HEADER_RSS
<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<generator>AGT_gen</generator>
<title>Название ленты</title>
<link>http://ссылка на сайт </link>
<description>Описание.</description>
<language>ru</language>
<managingEditor>мыло менеджера</managingEditor>
<copyright>COPY</copyright>
HEADER_RSS;
while($res=mysql_fetch_array($sql)){
//перевод из ГГГГ-ММ-ДД в такую хрень Mon, 18 Sep 2006 02:18:26 +0400 ну не использовал я timestamp,
$time =$res[2];
list( $y, $m, $d) = explode("-", $time );
$times = mktime(0, 0, 0, $m, $d, $y);
$time=date("D, d M Y H:i:s +0400",$times);
//расстановка
$data.=<<<CONTENT
<item>
<title>$res[3]</title>
<pubDate>$time</pubDate>
<link>http://ссылка</link>
<description><![CDATA[$res[4] ]]></description>
</item>
CONTENT;
}
$data=$data.<<<FOOTER_RSS
</channel>
</rss>
FOOTER_RSS;
return $data;
}
?>
|
Обратите внимание на точки в $data это конкатенация строк
и естесно вывод всего этого файл rss.php
<?php
header('Content-type: application/xml');//сказать что работаем с xml
include_once('function_rss.php')
$num=10;//количество новостей
echo build_rss($rss,$num);
?>
|
| |
|
|
|
|
|
|
|
для: indexer
(21.09.2006 в 02:34)
| | HEADER_RSS и FOOTER_RSS загнал в одну функцию потому как мне так удобнее, но можно и разделить и прописывать теги отдельно например с конфиг файла.
дата должна быть имеено в таком формате
Mon, 18 Sep 2006 02:18:26 +0400
иначе будут глюки. используйте timestamp в базе легче перевести во что угодно
у меня это все пишется в файл rss.xml Кроном в 12 часов ночи поэтому мне время не важно 00:00:00 | |
|
|
|
|
|
|
|
для: indexer
(21.09.2006 в 02:50)
| |
Вот такая функция файл function_rss.php
|
тоисть в этом файле сделать шаблон вывода да?
и все значения доставать из базы да?
а потом в друго файле просто приинклудить файл и обозначить сколько новостеймаксимум ? | |
|
|
|
|
|
|
|
для: Panker
(21.09.2006 в 10:55)
| | вот такая ошибка Parse error: parse error, unexpected T_VARIABLE in y:\home\kmk\www\rss.php on line 6
на строку
$num=10;//количество новостей
сделал вот так
<?php
include "config.php";
//Подключение к базе и получение идентификатора соединения $conn//сложностей нет
$rss=true;//:-)
function build_rss($conn, $num){
$sql = mysql_query("SELECT * FROM `news` ORDER BY `id` DESC LIMIT $num");
$data=<<<HEADER_RSS
<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<generator>AGT_gen</generator>
<title>Название ленты</title>
<link>http://ссылка на сайт </link>
<description>Описание.</description>
<language>ru</language>
<managingEditor>мыло менеджера</managingEditor>
<copyright>COPY</copyright>
HEADER_RSS;
while($res=mysql_fetch_array($sql)){
//перевод из ГГГГ-ММ-ДД в такую хрень Mon, 18 Sep 2006 02:18:26 +0400 ну не использовал я timestamp,
$time =$res[2];
list( $y, $m, $d) = explode("-", $time );
$times = mktime(0, 0, 0, $m, $d, $y);
$time=date("D, d M Y H:i:s +0400",$times);
//расстановка
$data.=<<<CONTENT
<item>
<title>$res[3]</title>
<pubDate>$time</pubDate>
<link>http://ссылка</link>
<description><![CDATA[$res[4] ]]></description>
</item>
CONTENT;
}
$data=$data.<<<FOOTER_RSS
</channel>
</rss>
FOOTER_RSS;
return $data;
}
?>
|
второй файл
сам RSS.php
<?php
header('Content-type: application/xml');//сказать что работаем с xml
include_once('function_rss.php')
$num=10;//количество новостей
echo build_rss($rss,$num);
?>
а так и джолжно быть что в файле функции RSS расцветка на верху номральная а потом уже просто черный шрифт не какой расцветки :( | |
|
|
|
|
|
|
|
для: Panker
(21.09.2006 в 14:50)
| | Отсутсвует точка с запятой в файле rss.php после конструкции
<?php
include_once('function_rss.php')
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(21.09.2006 в 19:00)
| |
Ошибка!
Ошибка анализа XML
Ошибка анализа XML: синтаксическая ошибка (Строка: 2, Символ: 0)
Повторный анализ документа как HTML
Ошибка:unexpected start-tag (root element already specified)
Спецификация:http://www.w3.org/TR/REC-xml/
1: <br />
2: <b>Parse error</b>: parse error, unexpected T_SL in <b>y:\home\kmk\www\function_rss.php</b> on line <b>11</b><br />
|
11 строкуу ошибка =(
сюда - <?xml version="1.0" encoding="windows-1251"?>
=( помогите разобратся плиз очень хочу RSS =) | |
|
|
|
|
|
|
|
для: Panker
(21.09.2006 в 22:33)
| | Снимите функцию и запишите так запустите и смотрите что выведет
то что текст без окраски не должно быть
<?php
//все то же подключение к базе
$num=1;
$sql = mysql_query("SELECT * FROM `news` ORDER BY `date` DESC LIMIT $num");
$data=<<<HEADER_RSS
<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<generator>AGT_gen</generator>
<title>Название</title>
<link> ссылка</link>
<description>описание</description>
<language>ru</language>
<managingEditor>мыло</managingEditor>
<copyright>polmira.ru</copyright>
HEADER_RSS;
while($res=mysql_fetch_array($sql)){
/*
//Временно отключаем
//перевод из ГГГГ-ММ-ДД в такую хрень Mon, 18 Sep 2006 02:18:26 +0400 ну не использовал я timestamp,
$time =$res[2];
list( $y, $m, $d) = explode("-", $time );
$times = mktime(0, 0, 0, $m, $d, $y);
$time=date("D, d M Y H:i:s +0400",$times);
//расстановка
*/
$data.=<<<CONTENT
<item>
<title>$res[3]</title>
<pubDate>$res[2]</pubDate>
<link>http://www.polmira.ru</link>
<description><![CDATA[$res[4] ]]></description>
</item>
CONTENT;
}
$data=$data.<<<FOOTER_RSS
</channel>
</rss>
FOOTER_RSS;
echo $data;// сначало запустить это
/*
а это если непонятки будут
echo $data."<br>";
echo $res[2]."<br>";
echo $res[4]."<br>";
*/
?>
|
что сие выводит?
и привидите код который выводит$data
может просто поля считываются не так как у меня естественно будет ошибка.
можно вместо mysql_fetch_array
использовать mysql_fetch_row
тогда будет не $res[1], $res[2],$res[3]
а $res[имя поля в базе] | |
|
|
|
|
|
|
|
для: indexer
(21.09.2006 в 23:35)
| | Форум код как то ломает, или перепишите вручную или вот файл | |
|
|
|
|
|
|
|
для: indexer
(21.09.2006 в 23:46)
| | вот я подписался на свои новости но ошибку всё равно выдаёт на строку номер 8
Fatal error: Call to undefined function: build_rss() in y:\home\kmk\www\rss.php on line 8
строка номер 8 это - <?xml version="1.0" encoding="windows-1251"?>
а если бодробней то вот, я захожу через оперу и мне САМА опера говорит вот что
Ошибка!
Ошибка анализа XML
Ошибка анализа XML: синтаксическая ошибка (Строка: 18, Символ: 6)
Повторный анализ документа как HTML
Ошибка:XML declaration not at beginning of document
Спецификация:http://www.w3.org/TR/REC-xml/
15: <description><![CDATA[55 ]]></description>
16: </item>
17: </channel>
18: </rss><?xml version="1.0" encoding="windows-1251"?>
19: <rss version="2.0">
20: <channel>
21: <generator>AGT_gen</generator>
|
то что выделено жирным опера выделяет красным!
Добавлено через 5 минут
Вот ещё кстати!
раньше же у меян в rrs.php
было
<?php
header('Content-type: application/xml');//сказать что работаем с xml
include_once('function_rss.php');
[b]$num=10;//количество новостей[/b]
[b] echo build_rss($rss,$num); [/b]
echo "$data";
?>
|
я удалил то что выыделенно жирным так как это уже в функциональном файле есть!
И выдаётся ошибка на эту строку - <?xml version="1.0" encoding="windows-1251"?>
НО если нажать пропустить ошибку можно зайти и не каких ошщибок не будет!
Но это всё равно смущает и меня и ползователе, как это сиправить?
ещё кстати
если я удаляю строку <?xml version="1.0" encoding="windows-1251"?> то подсветка становится нормальная в редакторе, и работает всё но ошибка выдаётся на другую строку и кодировка проподает!
если удалить <?xml version="1.0" encoding="windows-1251"?>
то ошибка идёт на </rss><rss version="2.0">
я думаю потому что переноса строки нет между концом и началом (( | |
|
|
|
|
|
|
|
для: Panker
(22.09.2006 в 10:52)
| | и вот ещё, не оброщая вниманяи на ошибку настроить пытался чт обы данные нужные вылезали, но видимо нельзя в адресе писать символ & а у меян везде в адресе они, то мне делать? мне ссылку на новости не поставить (( вот ещё с этой проблем помогите :( а так вроде всё настроил только ошибка одна что выше указал и вот с этим символом
http://softtime.ru/forum/read.php?id_forum=1&id_theme=24967&page=1 | |
|
|
|