Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2010, 23:05   #1
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
По умолчанию добавление RSS

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

Я хочу сделать добавление новостей в RSS с помощью скрипта php!

вот примерный RSS код:
PHP код:
<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>

<item>
<title>Король и шут Театр демона(2010)</title>
<category domain="?page=music">Музыка</category>
<author>nikolaevkostya</author>
<link>http://www.depositka.ru/?id=7</link>
<guid isPermaLink="false">7</guid>
<description>
<![CDATA[<img src="/img/pic/4ce55feae4f7e.jpeg"><br>
<BR><STRONG>Список песен:&nbsp;</STRONG><br>&nbsp;<br>1. Медведь [<EM>5:00</EM>]<br> 2. Прыгну со скалы&nbsp;[<EM>6:00</EM>]<br> 3. Фокусник [<EM>7:00</EM>]<br>]]>
</description>
<comments>/?id=7</comments>
<pubDate>Wed, 21 Dec 2010 19:23:44 GMT</pubDate>
</item>

</channel>
</rss>
От скрипта php требуется:
-открывать файл rss.xml

PHP код:
$fp fopen("rss/rss.xml","a"); 
Теперь надо поместить переменную $mytext="<item>...</item>";
между тегов <rss><channel>...тут другие новости item...(сюда вставить $mytext)...</channel></rss>

Как это сделать?
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Старый 04.12.2010, 01:17   #2
Minus_yu
Чатланин!
Форумчанин
 
Аватар для Minus_yu
 
Регистрация: 20.11.2010
Сообщений: 140
По умолчанию

вот так можно:

создаем файл rss.php, в котором рисуем:

PHP код:
<?php
    header
("Content-Type: text/xml");
    echo 
"<?xml version=\"1.0\" encoding=\"windows-1251\"?>";
    
?>

<rss version="2.0">
<channel>
<title>Канал новостей сайта www.site.ru</title>
<link>www.site.ru</link>
<description>Описание</description>
<language>ru</language>

<?php
    
/*тут вытаскиваю откуда-нибудь инфу в виде многомерного массива, в каждом элементе которого массив, содержащий данные по одной отдельно взятой новости, и далее, если многомерный массив непустой, 
    расписываю его foreach'ем*/ 

foreach ($array as $value) {
            echo 
"    <item>
                    <title>Название - например "
.$value['title']."</title>
                     <link>ссылка на страницу....</link>
                    <description>описание....</description>
                    <author>Автор....</author>
                    <guid>еще ссылочка....</guid>
                    </item>"
;
        }
    
?>


</channel>
</rss>
ну и потом ссылочку на сайте на этот файлик
или между
Код:
<head></head>
прописать:
Код:
<link rel="alternate" type="application/rss+xml" title="RSS лента новостей сайта www.site.ru" href="http://site.ru/rss.php" />
чтобы значок RSS появился в адресной строке бразера

вроде работает))
Minus_yu вне форума Ответить с цитированием
Старый 04.12.2010, 20:44   #3
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
По умолчанию

Minus_yu Спасибо!

Единственный большой минус такой реализации - нагрузка на MySQL!
У меня на хостинге ограничение нагрузки на сервер.
Представь у меня будет больше 5000 новостей!

В общем решил, использовать твой вариант, но выводить только несколько новых новостей)

Спасибо!

Переделал цикл на:
while($value = mysql_fetch_array($array)){

...

}


Вот что получилось - http://www.lovecity24.ru/rss/rss.php
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851

Последний раз редактировалось kpachbiu; 04.12.2010 в 22:41.
kpachbiu вне форума Ответить с цитированием
Старый 04.12.2010, 22:48   #4
Minus_yu
Чатланин!
Форумчанин
 
Аватар для Minus_yu
 
Регистрация: 20.11.2010
Сообщений: 140
По умолчанию

Цитата:
Сообщение от kpachbiu Посмотреть сообщение
Представь у меня будет больше 5000 новостей!
ну ставь в запросе в базу что-то типа LIMIT и выводи только энное количество... например ограничение по дате...
Minus_yu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RSS Reader StormWhisper Общие вопросы Delphi 4 01.10.2010 18:17
rss DeDoK Свободное общение 0 23.08.2010 02:47
RSS StudentPolitech Свободное общение 3 26.06.2009 21:09
RSS AidarBik Работа с сетью в Delphi 12 03.02.2009 23:46
rss Никки PHP 2 06.02.2008 20:56