Интеграция/чтение 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> "; } ?>
Добавить комментарий