Лого сайта
Веб-компас сайтостроителей
Вход в аккаунт
Регистрация на сайте
/ Все статьи / PHP / PHP скрипты / Скрипт на PHP для вывода на сайте RSS 2.0 - новостей

Скрипт на PHP для вывода на сайте RSS 2.0 - новостей

Для пополнения сайта уникальным контентом можно использовать RSS-ленты других сайтов (например, новостных). Это понравиться как поисковым машинам, так и посетителям сайта.
Основной особенностью этого скрипта является использование регулярных выражений, то есть работа скрипта обходиться без DOM-функций. Для вывода будем использовать лишь заголовки, ссылки на публикации и краткие описания публикаций новостной ленты.
Для того чтобы не запрашивать все время данные RSS-канала, будем их кэшировать. Поэтому для каталога, где будет сохраняться кэш-файл, нужно будет установить права доступа 777.
Для нормальной работы скрипта нужен PHP не ниже версии 4.3.

 

Описание: Скрипт на PHP для вывода на сайте RSS - новостей
Скачать Размер: 1.61 KB. Количество скачиваний: 6316

 

Обновление 17.12.2010г. Новая версия скрипта. Для правильной работы нужен PHP версии 5.1. Что нового?
1. Добавлен вывод даты новостей ленты
2. Добавлен вывод рисунка канала
3. Скрипт при необходимости преобразует кодировку полученных данных ленты из windows-1251 в кодировку utf-8. Если вам не нужно преобразование (сайт у вас в кодировке windows-1251) или нужно наоборот преобразовать данные из utf-8 в windows-1251, то можно немного подредактировать скрипт (комментарии в скрипте есть, сможете самостоятельно отредактировать).

 

Описание: Скрипт на PHP для вывода на сайте RSS 2.0 - новостей. Версия v2
Скачать Размер: 2 KB. Количество скачиваний: 5669

 

Пример использования RSS-скрипта

 

Код
<?php



include_once("write_rss.php");//подключаем файл с функцией вывода RSS-новостей



//адресс новостей (URL-адрес RSS потока)

$url_rss="http://www.linedmk.com/rss.php";



//количество выводимых новостей

$kol_print_news=10;

//имя файла для хранения RSS-новостей на локальном сервере (то есть кэш-файл)

$file_rss="cache_rss.xml";

//время обновления, в часах

$hclock=1;



print_rss($url_rss,$file_rss,$hclock,$kol_print_news);//вызываем функцию вывода RSS-новостей



?>

Еще статьи из данной категории
Нет статей
Комментарии
Всего комментариев: 70
Гость | 05.11.2009, 22:23
Попробуем
mius | 15.12.2009, 01:51
Спасибо. Легенький и простой скрипт. Многие жмутся ведь из-за такого.
Гость | 11.01.2010, 05:53
неплохо было бы вынести переменную показывать ли описание или нет. Также добавить дату и время
Гость | 01.02.2010, 05:04
kak v skripte meniat kodirovku . mne nuzna kodirovka utf -8 ?
mius | 11.02.2010, 02:45
Насколько я помню, кодировка зависит от поставщика ленты и кодировки страницы, на которой этот скрипт используется. Сам скрипт к коду не привязан.
zherenovsky | 08.05.2010, 08:53
работает скрипт. автору респект и уважуха!!!
Gazprom | 21.05.2010, 06:04
Спасибо. Интересный парсер. Правда требовалось немного изменить и доработать.
seo-cook | 27.10.2010, 00:53
а как доработал, где-нибудь скачать можно?
Москва | 21.05.2010, 06:07
Не хватает даты и времени А также названия источника.
Дима | 07.06.2010, 19:39
Где взять write_rss.php
admin (Автор статьи) | 09.06.2010, 07:17
Странный вопрос! В архиве, конечно, который можно бесплатно скачать по вышеприведенной ссылке.
Наталья | 01.07.2010, 02:20
установила скрипт. Все классно выводило первый час, после этого новости пропали.
Атрибуты папки и файлов правильные. В чем ошибка?
admin (Автор статьи) | 02.07.2010, 06:50
Я не ясновидящий! ;))
Гость | 07.07.2010, 23:04
Наталья, этот скрипт по умолчанию обновляется каждый час.

В файле write_rss.php есть строчка " if (filemtime($file_rss) + $hclock*60*60 < time()) "

я поменял $hclock*60*60 на $hclock*60*, благодаря чему обновляться стало чаще, вожможно вам это поможет.
Дмитрий | 29.07.2010, 00:38
У кого появляются проблемы с кодировкой, исправляем вот так:

$t=iconv("Windows-1251","UTF-8",$t);
echo ($t);
mod | 25.09.2010, 00:11
У меня скрипт не выполняется :(
chmod выставил, каталоги и файлы правильно прописаны. В кэш ничего не записывается. В исходном коде скрипт вырезается о_О Может хостер блокирует?
admin (Автор статьи) | 28.09.2010, 05:41
Как это "В исходном коде скрипт вырезается"?
mod | 04.10.2010, 21:29
Странно. Брал скрипт, ничего не изменял, вставлял в голую хтмл страницу, и тоже не работало.
mod | 04.10.2010, 21:38
Проблема частично решилась! Дело было в "htaccess", и с строке "RewriteEngine On". Теперь нужно прописать исключение для этого скрипта.

Спасибо за ответы!
mod | 27.10.2010, 03:41
...и что-то не получается исключение сделать :(
Glok | 07.11.2010, 17:50
Скрипт работает, подскажите только на картинки сделать, чтобы выводились?
admin (Автор статьи) | 07.11.2010, 20:28
Изучаем Спецификацию RSS 2.0 (к примеру на сайте http://beshenov.ru/rss2.html), и переделываем скрипт для вывода картинок.
Гость | 16.11.2010, 06:08
Можно мануал по установке?(((
Куда пхп файл заливать?Где папку для файла - кэш создать?
У меня сайт на движке.
Гость | 16.11.2010, 06:09
А то мыкаюсь, блин мыкаюсь, нигде не могу найти модуль подходящий...
А это походу штучка что надо как раз ))
admin (Автор статьи) | 01.12.2010, 22:51
В статье и так все написано, надо сделать как в приведенном коде.
Гость | 12.12.2010, 21:42
Спасибо за скрипт! Хорошая идея с кэшем.

Но у меня не получается запустить любой пакет из google reader. Вы не пробовали тестить ленты ридера?
admin (Автор статьи) | 13.12.2010, 03:14
нет, не пробовал.
ZAVcom | 16.12.2010, 14:32
если бы еще при это был реализован вывод картинок к новостям
можете помочь?
Гость | 17.12.2010, 08:07
а как вывести дату новости? в скрипте вроде все есть для этого но не пойму. нету и все. Может есть кака нибудь подсказка?
admin (Автор статьи) | 17.12.2010, 21:36
Скачайте новую версию, в ней реализован вывод даты.
Гость | 18.12.2010, 00:11
Я имею ввиду вывод даты в моих новостях, к примеру я хочу отправлять в качестве новости новое объявление, зоголовок , содержание ну и ДАТУ размещения.
Гость | 18.12.2010, 19:41
Странно. В мозилле не выводит дату. А в интернет эксплорере выводит. Разные браузеры по разному выводят содержимое сайта?
admin (Автор статьи) | 21.12.2010, 17:50
В самом деле странно. У меня в мозилле все нормально отображается - дату выводит.
Евгений | 23.12.2010, 23:16
Для меня это тоже странно. На моем сайте (мировыеновости.рф) все выводит в том числе и даты, немного доработал что теперь картинки выдает вместе с новостью, дальше идея есть внедрить флеш проигрыватель, т.к. на некоторых новостях есть видео ролики.
Алекс | 23.01.2011, 21:46
Помогите, вывод работает нормуль, но картинок нет.Что может быть, подскажите
admin (Автор статьи) | 25.01.2011, 06:37
Картинки еще должны быть в потоке RSS. Не каждый сайт дает эту картинку.
Гость | 31.01.2011, 02:27
Если я хочу на разных страницах сайта выводить разные новости
к примеру:

на 1-странице новости туризма:
указываю адрес
//адресс новостей (URL-адрес RSS потока)
$url_rss="http://news.yandex.ru/travels.rss";

на 2-странице новости происшествий
указываю адрес

//адресс новостей (URL-адрес RSS потока)
$url_rss="http://news.yandex.ru/incident.rss";

так вот при открытии этих страниц новости выводятся одинаковые что на 1 странице, что на 2 странице с первого адреса
Открываю эти страницы через некоторое время, выводятся уже новости со второго адреса ,но и на 1 странице и на 2 странице одинаковые
admin (Автор статьи) | 31.01.2011, 19:44
Новости кэшируются, и обновляются через определенный промежуток времени. Нужно как-то сделать разделение кэширования.
Алексей | 19.03.2011, 22:27
Ну так как сделать, чтобы выводились картинки? Внутри скрипта есть переменные которые их обрабатывают да и в кеш xml файле они тоже видны, но из на сайте нет в экплорере, а хроме они есть, но безразмерные плюс ссылка на них битая.
Алексей | 19.03.2011, 22:51
Короче нашёл решение, как вывести картинки:
Заменить сточку:
$description[1]=preg_replace("#<\!\[CDATA\[(.*?)\]\]>#eis","'\\1'",$description[1]);

на
$description[1]=preg_replace("#<\!\[CDATA\[#eis","'\\1'",$description[1]);
$description[1]=preg_replace("#]\]>#eis","'\\1'",$description[1]);

Тогда картинки, которые передаются в дескрипшене станут отображаться.

Хорошего всем дня.
Егор12 | 13.03.2012, 00:02
Действительно отображаться стали, Алексей - благодарствую за помощь. Автору непременно спасибо за скрипт!, так долго искал...
Андрей | 09.04.2011, 00:25
Спасибо за замечательное решение!
Особенно понравился по доступности второй вариант.
Алексей | 11.04.2011, 02:04
Появилась ошибка работе скрипта:Вот она
Notice: Undefined offset: 1 in /home/h28192/data/www/torgploshad.com.ua/write_rss.php on line 72

Notice: Undefined offset: 1 in /home/h28192/data/www/torgploshad.com.ua/write_rss.php on line 72
Alex | 14.04.2011, 23:18
а как сделать так, что бы выводился только заголовок и картинка?
admin (Автор статьи) | 15.04.2011, 05:07
Отредактируйте скрипт.
Ивван | 21.04.2011, 00:30
Не знаю как у остальных, но у меня получилось сразу! Спасибо, буду пользоваться. Побольше бы таких статей!
pric | 22.12.2011, 15:25
У меня тожке сразу заработало, пользуюсь
Тарас | 01.07.2011, 01:35
Вот это дела, 5 минут дела и у меня есть RSS лента, скрипт работает как швейцарские часы... Доволен!!!
Ден | 03.01.2012, 03:15
Приветствую! Скрипт работает, и выводит заголовок и текст + лого
Но не выводит прикреплённые Медиа файлы.
Подскажите как вывести...
Вот пример
http://www.strana.co.il/export/all.xml
chajka | 26.01.2012, 05:20
Ура! Получилось! Замучилась с кодировкой - все сделала как написано - и все равно кракозябры. А оказывается кеш не поменялся. ))) Прошел час и все ок )) Спасибо огромное - столько перепробовала скриптов. Ваш - лучший.
Дим | 23.02.2012, 21:13
Всё сделал по инструкции, но всё равно не выводится ничего.... Просто пустая страница.
Не подскажете, в какую сторону копать?
Спасибо.
Dmitry | 19.03.2012, 01:28
Как можно объединить несколько рсс лент?
Илья | 19.03.2012, 21:09
Спасибо!
Вит | 21.04.2012, 09:11
Вместо echo ($t); нужно echo htmlspecialchars_decode ($t);
Akkermanez | 09.08.2012, 16:23
Познавательно, надо покрутить. Спасибо.
Евстропов | 17.11.2012, 17:47
Сейчас почти все движки обладают соответствующим модом, а если самопальный движек, то и ленту прикрутить как 2 пальца об асвальт)))
garnir | 11.12.2012, 19:33
Ребят, ну подскажите что делать с кодировкой. Я ничерта не понимаю в PHP. Что тут написано - шатл в разобранном виде. Что нужно сделать со скриптом, чтобы русские буквы иероглифами небыли? Кодировки обоих сайтов cp1251
Титан | 20.01.2013, 09:42
Попробуй в самом файле casha_rss.xml изменить в первой строке кодировку на Windows-1251
Алексей | 08.03.2013, 13:59
В примере в адресе ссылки тип .php. Могу ли я подключить ссылку с расширением .rss? Пробовал, выдаёт пустую страницу
MrFiks | 07.06.2013, 09:41
Отлично завелось с пол пинка! Хороший скрипт. Автору сенкс.
Serg | 20.08.2013, 18:12
Я - новичек в PHP. Кому не в тягость. Опишите процесс прикручивания скрипта.
Имеем файл write_rss и что с ним делать
Clipof | 25.07.2013, 20:58
как поставить ограничение на количество символов в тексте?
Rudydu | 13.08.2013, 19:40
Подскажите пожалуйста как прописать исключения в htaccess для скрипта. Ну не запускается скрипт и всё не хочет работать((
Сергей | 19.05.2014, 19:33
Спасибо, привинтил. Все работает!
Сергей | 09.06.2014, 05:38
Подскажите
привинтил рсс от форума..показывает тему..сообщения и дату.
Но в сообщениях есть фото их тоже выводит как убрать что бы фото не показывало?
Рамиль | 01.11.2017, 21:32
Спасибо за хороший скрипт. Правильно заработал сразу же после установки. Респект автору.
eric | 18.02.2020, 11:10
Подскажите а как этот скрипт собственно будет запускаться на сервере? самостоятельно чтоли?
admin (Автор статьи) | 06.08.2020, 10:36
Код, указанный в примере, прописываете на своем сайте. При открытии сайта будет запускаться данный код и будут выводиться новости.
Егор | 28.01.2021, 20:06
К сожалению, не обрабатывает такую ссылку
http://mogilev.gov.by/index.php?option=com_ninjarsssyndicator&feed_id=1&format=raw
гость | 10.02.2021, 09:44
После подключения яндекс-турбо в самой ленте (<item turbo="true">) выводит пустой экран (( Где копать? Спасибо.
Добавить комментарий