|
|
|
| как сделать rss под свй сайт
что нужно?
есть бд с табилцей где данные к каждой заметке | |
|
|
|
|
|
|
|
для: TavRoX
(09.09.2010 в 20:54)
| | Так с ходу, думаю, не объяснят.
1) Посмотри исходный код новостей, покопайся.
2) Если мне память не сильно изменяет, это хорошо описано в этой книге http://www.softtime.biz/dataimg_books/php5_practica_second.gif | |
|
|
|
|
|
|
|
для: ~AquaZ~
(09.09.2010 в 21:47)
| | ну какбы я сам писал сайт на пхп
идет запрос из базы выводятся поля и т.д.
а вот как обустроить саму ленту незнаю( | |
|
|
|
|
|
|
|
для: TavRoX
(09.09.2010 в 21:49)
| | может надо типа создать файл rss.xml
а там типа вывод всех новостей сделать или как | |
|
|
|
|
|
|
|
для: TavRoX
(09.09.2010 в 21:49)
| | Типа создай файл rss.php и выводи данные в соответствие с правилами форматирования рсс
http://ru.wikipedia.org/wiki/Rss | |
|
|
|
|
|
|
|
для: nikita2206
(09.09.2010 в 21:54)
| | спасибо буду пробовать | |
|
|
|
|
|
|
|
для: TavRoX
(09.09.2010 в 22:22)
| | вот сделал рсс
но чет не пашеть
открывается страничка появляется типа подписатся а снизу нечего
только линия которая типа в шаблоне
<rss version="2.0">
<channel>
<title>Новости Ужгорода</title>
<link>ссылка/</link>
<description>Общественно-информационный портал города Ужгорода</description>
<language>ru</language>
<docs>ссылка/rss.php</docs>
<generator>Сайт Ужгорода</generator>
<managingEditor>мейл</managingEditor>
<webMaster>мейл</webMaster>
<?
include ("blocks/bd.php");
$vivod='5';
if($_GET['page']==0){$_GET['page']=1;}
$page=$_GET['page'];
$j = $_GET['page']*$vivod-$vivod;
$query11 = "SELECT * from data";
$res11 = mysql_query($query11) or die(mysql_error());
$number11 = mysql_affected_rows();
$x = ceil($number11 / $vivod);
$query="SELECT id, cat, title, description, date, text, view FROM data ORDER by id DESC limit ".$j.",".$vivod;
$res=mysql_query($query);
while ($row=mysql_fetch_array($res)) {
$kat = $row["cat"];
$result2 = mysql_query("SELECT id, title FROM categories WHERE id='$kat'",$db);
$row2 = mysql_fetch_array($result2);
$text = $row['text'];
$title = $row['title'];
$date2 = $row['date'];
$monthes = array('', 'ЯНВАРЯ', 'ФЕВРАЛЯ', 'МАРТА','АПРЕЛЯ','МАЯ','ИЮНЯ','ИЮЛЯ','АВГУСТА','СЕНТЯБРЯ','ОКТЯБРЯ','НОЯБРЯ','ДЕКАБРЯ');
list($year, $month, $day) = explode('-', "$date2");
$month_name = $monthes[(int) $month];
?>
<item>
<title><? echo $row['title']; ?></title>
<link>ссылка/view_post.php?id=<? echo $row['id']; ?></link>
<description><? echo substr($text,0,100)."..."; ?></description>
<pubDate><? echo "$day"; ?>, <? echo "$month_name"; ?>, <? echo "$year"; ?></pubDate>
<guid>ссылка/view_post.php?id=<? echo $row['id']; ?></guid>
</item>
<img src="images/line-1.jpg" style="margin-top:10px "><br>
<?
}
echo "<br/><div style='float:left; width:350px; padiing-bottom: 5px;'>";
for($i=1;$i<$x+1;$i++)
{
if ($i==$page) {
echo "<a style='color:orange; bottom:0;' >".$i."</a> ";
} else {
echo "<a style='color:#809ad6; bottom:0;' href = \"index.php?page=".$i."\">".$i."</a> ";
}}
echo "</div> <br>"; ?>
</channel>
</rss>
|
| |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 00:38)
| | Забыли в начале - <?xml version="1.0" encoding="windows-1251"?> Кодировку свою укажите. RSS - частный случай xml.
согласно RFC-822 все даты в RSS-ленте должны указываться в таком формате:
Mon, 17 Nov 2008 20:06:55 +0300
Я обычно содержимое description беру в CDATA, чтобы если в строке HTML-теги попадутся, они
отображались правильно. Например:
<description><![CDATA[$message]]></description>
Согласно формату xml, все теги должны закрываться. У вас <img src="images/line-1.jpg" style="margin-top:10px "> незакрытый. <br> - вообще выкинуть. И по-моему, для image в RSS есть свой элемент.
И я бы в начале скрипта послала заголовок, что перед нами - формат xml:
header("Content-type: application/xml"); | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 11:06)
| | а если у меня нету в дате времени? | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 16:10)
| | вставил вверху такое вот
<? xml version="1.0" encoding="windows-1251" ?>
|
выбивает ошибку
Parse error: syntax error, unexpected T_STRING | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 16:15)
| | Всю строку ошибки приведите, пожалуйста.
Перед тегом <? xml пробелы есть?
Кодировка файла какая у вас?
Если файл в utf, то надо прописывать <?xml version="1.0" encoding="utf-8" ?> | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 16:26)
| | и с пробелами и без ошибка таже
кодировка ета
файл формата php
rss.php | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 16:32)
| | Еще раз повторяю свою просьбу от (27.09.2010 в 16:26)
Всю строку ошибки приведите здесь(т.е. надо привести все, что идет после Parse error: syntax error, unexpected T_STRING ) | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 16:38)
| | Parse error: syntax error, unexpected T_STRING in /home/.../...../.../rss.php on line 1 | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 16:39)
| | Сорри, у вас там в начале html идет...
Тогда так: <xml version="1.0" encoding="windows-1251"> | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 16:10)
| | Есть стандартные требования к формату xml.
В случае с датой тоже есть стандарт, о котором я вам рассказала.
>а если у меня нету в дате времени?
xml все равно, есть ли у вас время в дате или нет. Он хочет, чтобы ему дали дату в нужном формате. Другой даты он просто не понимает.
Выход: или добавить время, или убрать тег <pubDate>. Прежде, чем убирать, сделайте у себя print date("r"); - и посмотрите, что выводит. А после сравните со стандартом даты xml. | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 16:32)
| | теперь пашет но выводи тпонлый бред(
http://....com/ Общественно-информационный портал города Ужгорода ru http://....com/rss.php Сайт Ужгорода мейл мой мейл мой http://uzhgorod-ua.com/view_post.php?id=262
http://....com/view_post.php?id=261 http://....com/view_post.php?id=260
http://....com/view_post.php?id=259
http://....com/view_post.php?id=258
ну и странички снизу навигация
|
| |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 16:58)
| | Из базы не выводится информация.
Посмотрите, проходит ли запрос на выборку, поменяйте эти строки:
$query="SELECT id, cat, title, description, date, text, view FROM data ORDER by id DESC limit ".$j.",".$vivod;
$res=mysql_query($query);
while ($row=mysql_fetch_assoc($res)) {
print "<pre>";
print_r($row);
print "</pre>";
Результат - сюда.
И попробуйте напрячь мозги и объяснить, почему результат такой. | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 17:03)
| | выводит то что Леночка увидела правильно) | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 17:10)
| | сдаётся мне у Вас там с html-тегами текст, потомучто после первого ряда одни [view] видите в браузере.
обрабатывайте текст htmlspecialchars()
Каким браузером пользуетесь ? он вообще умеет отображать xml ?
Exolorer должен показывать его как исходный код
или в адресной строке появляется значёк rss, если в коде страниц <link href="......" rel="alternate" type="application/rss+xml"/>
><?xml version="1.0" encoding="windows-1251" ?>
выбивает ошибку
Parse error: syntax error, unexpected T_STRING
чтобы php не интерпретировал <?xml как открывающий тег пишите
<?php echo '<?xml version="1.0" encoding="windows-1251" ?>'; ?> | |
|
|
|
|
|
|
|
для: heed
(27.09.2010 в 17:36)
| | текст с хтмл тегами ето да
браузеры у меня усе включены)) | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 17:03)
| | У вас даже лучше, чем я думала :)
Очистите предыдущий пост, чтобы не было горизонтального скроллинга, у меня страница не помещается по ширине, читать сложно.
Значит, из базы у вас все выводится.
Вот этот блок:
<title><? echo $row['title']; ?></title>
<link>ссылка/view_post.php?id=<? echo $row['id']; ?></link>
<description><? echo substr($text,0,100)."..."; ?></description>
<pubDate><? echo "$day"; ?>, <? echo "$month_name"; ?>, <? echo "$year"; ?></pubDate>
<guid>ссылка/view_post.php?id=<? echo $row['id']; ?></guid>
Переменные не надо брать в кавычки. Сами внимательно исправьте, например:
строку echo "$month_name";
на строку echo $month_name;
По дате отпишусь уже вечером, сейчас своя работа есть. | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 17:22)
| | убрал кавычки всреавно не работает(
выводит аткже как и было
дату вообще убрал | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 17:27)
| | >дату вообще убрал
Зря убрали, надо было в мануал хотя бы заглянуть, что ли... Я ж вам наводку дала.
В вашем случае это будет:
date("r",strtotime($row['date'])); | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 21:32)
| | та дата то такое главное чтобы все работало | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 21:36)
| | Т.е. у вас до сих пор не работает? | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 21:40)
| | ну если добавить ту штукенцию что вы скинули то работает если убрат ьто не работает
но я так понимаю что ето была чисто проверка работает ли база или нет | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 21:45)
| | >ну если добавить ту штукенцию что вы скинули то работает если убрат ьто не работает
детский сад вторая группа. Пошла попрошу у Trianona самые жесткие пули.
Что у вас там есть в коде на самом деле, я не знаю - я ж не могу проконтролировать, что вы поменяли, а что нет.
Дайте дамп базы и дайте ваш код - ИСПРАВЛЕННЫЙ. Посмотрю. | |
|
|
|
|
 186 Кб |
|
|
для: Лена
(27.09.2010 в 21:49)
| | кусок дампа таблицы | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 22:00)
| | вот так типа пашет
<xml version="1.0" encoding="windows-1251">
<rss version="2.0">
<channel>
<title>Новости Ужгорода</title>
<link>http://сайт.com/</link>
<description>Общественно-информационный портал города Ужгорода</description>
<language>ru</language>
<docs>http://сайт.com/rss.php</docs>
<generator>Сайт Ужгорода</generator>
<managingEditor>ser@i.ua</managingEditor>
<webMaster>ser@i.ua</webMaster>
<?
include ("blocks/bd.php");
$vivod='5';
if($_GET['page']==0){$_GET['page']=1;}
$page=$_GET['page'];
$j = $_GET['page']*$vivod-$vivod;
$query11 = "SELECT * from data";
$res11 = mysql_query($query11) or die(mysql_error());
$number11 = mysql_affected_rows();
$x = ceil($number11 / $vivod);
$query="SELECT id, cat, title, description, date, text, view FROM data ORDER by id DESC limit ".$j.",".$vivod;
$res=mysql_query($query);
while ($row=mysql_fetch_assoc($res)) {
print "<pre>";
print_r($row);
print "</pre>";
$text = $row['text'];
$title = $row['title'];
?>
<item>
<title><? echo $row['title']; ?></title>
<link>http://сайт.com/view_post.php?id=<? echo $row['id']; ?></link>
<description><? echo substr($text,0,100).'...'; ?></description>
<guid>http://сайт.com/view_post.php?id=<? echo $row['id']; ?></guid>
</item>
<?
}
echo "<br/><div style='float:left; width:350px; padiing-bottom: 5px;'>";
for($i=1;$i<$x+1;$i++)
{
if ($i==$page) {
echo "<a style='color:orange; bottom:0;' >".$i."</a> ";
} else {
echo "<a style='color:#809ad6; bottom:0;' href = \"rss.php?page=".$i."\">".$i."</a> ";
}}
echo "</div> <br>"; ?>
</channel>
</rss>
|
а вот так не пашет:
<xml version="1.0" encoding="windows-1251">
<rss version="2.0">
<channel>
<title>Новости Ужгорода</title>
<link>http://сайт.com/</link>
<description>Общественно-информационный портал города Ужгорода</description>
<language>ru</language>
<docs>http://сайт.com/rss.php</docs>
<generator>Сайт Ужгорода</generator>
<managingEditor>ser@i.ua</managingEditor>
<webMaster>ser@i.ua</webMaster>
<?
include ("blocks/bd.php");
$vivod='5';
if($_GET['page']==0){$_GET['page']=1;}
$page=$_GET['page'];
$j = $_GET['page']*$vivod-$vivod;
$query11 = "SELECT * from data";
$res11 = mysql_query($query11) or die(mysql_error());
$number11 = mysql_affected_rows();
$x = ceil($number11 / $vivod);
$query="SELECT id, cat, title, description, date, text, view FROM data ORDER by id DESC limit ".$j.",".$vivod;
$res=mysql_query($query);
while ($row=mysql_fetch_assoc($res)) {
$text = $row['text'];
$title = $row['title'];
?>
<item>
<title><? echo $row['title']; ?></title>
<link>http://сайт.com/view_post.php?id=<? echo $row['id']; ?></link>
<description><? echo substr($text,0,100).'...'; ?></description>
<guid>http://сайт.com/view_post.php?id=<? echo $row['id']; ?></guid>
</item>
<?
}
echo "<br/><div style='float:left; width:350px; padiing-bottom: 5px;'>";
for($i=1;$i<$x+1;$i++)
{
if ($i==$page) {
echo "<a style='color:orange; bottom:0;' >".$i."</a> ";
} else {
echo "<a style='color:#809ad6; bottom:0;' href = \"rss.php?page=".$i."\">".$i."</a> ";
}}
echo "</div> <br>"; ?>
</channel>
</rss>
|
| |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 22:02)
| |
<?php
header("Content-type: application/xml");
$hostName = "";
$userName ="";
$password = "";
$databaseName = "";
if
(!($link=@mysql_connect($hostName,$userName,$password))){
printf("B настоящий момент сервер базы данных не доступен, поэтому
корректное отображение страницы невозможно.");
exit();
}
if
(!mysql_select_db($databaseName, $link)){
printf("B настоящий момент база данных не доступна, поэтому
корректное отображение страницы невозможно.");
exit();
}
mysql_query ("SET NAMES utf8");
print '<?xml version="1.0" encoding="utf-8"?>';
?>
<rss version="2.0">
<channel>
<title>Новости Ужгорода</title>
<link>http://сайт.com/</link>
<description>Общественно-информационный портал города Ужгорода</description>
<language>ru</language>
<docs>http://сайт.com/rss.php</docs>
<generator>Сайт Ужгорода</generator>
<managingEditor>ser@i.ua</managingEditor>
<webMaster>ser@i.ua</webMaster>
<?php
$query="SELECT id, cat, title, description, date, text, view FROM data ORDER by id DESC";
$res=mysql_query($query);
while ($row=mysql_fetch_assoc($res)) {
$text = $row['text'];
$title = $row['title'];
?>
<item>
<title><?php echo htmlspecialchars($row['title']); ?></title>
<link>http://сайт.com/view_post.php?id=<?php echo $row['id']; ?></link>
<description><?php echo htmlspecialchars(substr($text,0,100)).'...'; ?></description>
<pubDate><?php print date("r",strtotime($row['date']));?></pubDate>
<guid>http://сайт.com/view_post.php?id=<?php echo $row['id']; ?></guid>
</item>
<?php
}
?>
</channel>
</rss>
|
Подключение к базе сделайте свое.
Ни разу не видела rss-ленты с постраничной навигацией.
Обычно, если данных много, разбивают на несколько файлов. Могу и ошибаться :)
PS. Не позорьте Украину, садитесь читать мануал. :) | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 22:50)
| |
<?php
$db = mysql_connect ("localhost","логин","пароль");
mysql_select_db("база",$db);
mysql_query("SET NAMES 'cp1251'");
mysql_query("SET CHARACTER SET 'cp1251'");
?>
|
а причем сдесь украина?
етот сайт доделаю и буду пхп учить поновой
точнее не поновой а учить нормально | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 23:06)
| | $db = mysql_connect ("localhost","логин","пароль");
mysql_select_db("база",$db);
Любой запрос к базе надо проверять, успешно он прошел или нет. У вас этого нет.
mysql_query("SET NAMES 'cp1251'"); - берет кодировку, которую указывает клиент
эквивалентно трем строкам:
SET character_set_client = ;
SET character_set_results = ;
SET character_set_connection = ;
mysql_query("SET CHARACTER SET 'cp1251'"); - берет кодировку соединения базы.
Либо то, либо то.
>а причем сдесь украина?
Новости Ужгорода. Подумала, что вы из Украины.
>етот сайт доделаю и буду пхп учить поновой
Лучше наоборот. | |
|
|
|
|
|
|
|
для: Лена
(27.09.2010 в 23:19)
| | ну подкключение работает сайт то работает)
а те две строки я добавил для того чтобы кодировка не сбивалась потмоучт опосле переноса сайта на хостинг были проблемы | |
|
|
|
|
|
|
|
для: TavRoX
(27.09.2010 в 23:22)
| | так что делать блин( | |
|
|
|