Интеграция/чтение RSS PHP. PHP скрипт вывода RSS

Интеграция/чтение RSS PHP. PHP скрипт вывода RSS

2 марта 2020 PHP

В PHP начиная с 5 версии есть встроенная библиотека для работы с XML данными SimpleXML. Библиотека позволяет легко и просто использовать и манипулировать данными в RSS лентах используя объектно-ориентированный подход к XML DOM.

Чтение файла RSS

Используя SimpleXML, код ниже читает файл RSS и выводит структуру XML. Этот пример мало что делает, но демонстрирует, что файл читается и анализируется.

<?php
$xmlData=simplexml_load_file("https://it-blog.ru/feed/");
echo var_dump($xmlData);;
?>

Отображение данных

Для начала давайте покажем заголовок, авторское право и дату создания файла RSS. Следующий код читает файл, затем отображает title, lastBuildDate и copyright:

<?php
$xmlData=simplexml_load_file("https://it-blog.ru/feed/");
echo "
<h2>".$xmlData->channel->title."</h2>
";
echo "
<h3>Updated at ".$xmlData->channel->lastBuildDate."</h3>
";
echo "Copyright ".$xmlData->channel->copyright."";
?>

Отображение логотипа

В RSS есть узел с изображением, давайте его покажем:

<?php
$xmlData=simplexml_load_file("https://it-blog.ru/feed/");
echo '<img src="'.$xmlData->channel->image->url.
 '" width='.$xmlData->channel->image->width.
 '" height='.$xmlData->channel->image->height.' ></img>';
?>

Отображение новостей

Если вы изучите структуру XML, вы увидите, что элементы находятся внутри узла канала. Чтобы отобразить элемент, мы можем повторить все из них. Ниже приведен пример показа заголовка каждого элемента заголовка.

На сайте поиска туров в Турцию www.тут-тур.рф

<?php
$xmlData=simplexml_load_file("https://it-blog.ru/feed/");
echo '<img src="'.$xmlData->channel->image->url.
 '" width='.$xmlData->channel->image->width.
 '" height='.$xmlData->channel->image->height.' ></img>';
echo "
";
for ($i=0; $i<count($xmlData->channel->item); $i++)
{
 echo "Item ".$i.":".$xmlData->channel->item[$i]-><strong>title</strong>."
";
}
?>

Ссылки на новости

Связывание можно сделать, сделав каждый элемент ссылкой, используя узел ссылки. И пока будем показывать pubDate (дату публикации).

<?php
for ($i=0; $i<count($xmlData->channel->item); $i++)
{
 $link=$xmlData->channel->item[$i]-><strong>link</strong>;
 $title=$xmlData->channel->item[$i]->title;
 $publicationDate=$xmlData->channel->item[$i]-><strong>pubDate</strong>;
 echo "
<h2><a target='_blank' href='".$link."'>".$title."</a></h2>
";
 echo "
<h3>".$publicationDate."</h3>
<hr>";
}
?>

Форматирование

Теперь, когда вы знаете основы, форматирование можно сделать лучше. Вот пример:

<?php
$xmlData=simplexml_load_file("https://it-blog.ru/feed/");
echo '<img src="'.$xmlData->channel->image->url.
 '" width='.$xmlData->channel->image->width.
 '" height='.$xmlData->channel->image->height.' ></img>';
echo "
";
for ($i=0; $i<count($xmlData->channel->item); $i++)
{
 $link=$xmlData->channel->item[$i]->link;
 $title=$xmlData->channel->item[$i]->title;
 $publicationDate=$xmlData->channel->item[$i]->pubDate;
 echo "
<div class='newsItem'><a target='_blank' href='".$link."'>".$title."</a>";
 echo "
<div class='pubDate'>".$publicationDate."</div>
</div>
";
}
?>

Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Телеграм бот на PHP отправляющий сообщения с сайта

Что если сообщения с сайта будут приходить не только на ваш e-mail, но и моментально в мессенджер телеграм. Удобно же! Нужно было реализовать такой функционал, ну как и всегда все оказалось довольно просто. Так же стояла задача отправлять сообщения не Читать далее

Отправка формы без перезагрузки страницы на PHP и Ajax

Постоянно приходится пользоваться этой заготовкой. Вы можете модернизировать ее под любые нужды, будь то форма обратной связи, форма обратного звонка или заказ какой-либо услуги или товара. Поэтому я не буду украшать ее стилями, применять классы Bootstrap и различные скрипты, как Читать далее

Вывести на PHP месяц и день недели на русском

Довольно часто приходится сталкиваться с выводом названий месяцев и дней недели по-русски. При чем в различных вариантах, к примеру с полным названием или сокращенным, с большой буквы или с маленькой. Можно воспользоваться одним из этих 2 вариантов для вывода даты Читать далее

Парсер яндекс погоды на PHP

Рабочий пример PHP парсера, который получает погоду с Яндекса по ID города. Скрипт сохраняет данные в файле кеша на сайте, и обновляет его раз в час. Так же расскажу как выводить на сайте собственные иконки погоды вместо стандартных от Яндекса. Читать далее

Как встроить видео с YouTube канала на сайт

Для вывода списка видеозаписей из канала или плейлиста YouTube на сайте можно воспользоваться этим полностью рабочим решением на PHP. С помощью этой функции можно получить все необходимые данные видеозаписей: название, изображение и идентификатор видео. Вам понадобится идентификатор канала или плейлиста. Читать далее

Курсы доллара и евро с сайта Центробанка на PHP

Парсер получает курсы доллара и евро с сайта Центробанка каждые 24 часа и записывает их в файл кеша /log/course.txt Скрипт полностью готов к работе и не требует каких-либо дополнительных настроек. <? function loadCourse(){ define("tsCourse","15:00:00"); # Время смены курса центральным банком Читать далее

Календарь на PHP и Ajax

Пример календаря на PHP и Ajax с переключением месяцев. Можно использовать как заготовку для решения любых задач. Я использовал его для создания плагина календаря мероприятий на WordPress. Скрипт использует процедурный подход, но имеет разделенную структуру с шаблоном , что довольно Читать далее

Добавить комментарий