Шляхом Альбірео

НовиниЗаписиPHPRSS рідер мультіканальний

2022.07.21
Парсінг стрічки новин з кількох RSS-каналів одночасно
Новини світу
Парсінг стрічки новин з кількох RSS
Note

Скриптом задається список каналів, новини з яких виводяться в залежності від дати. Стилізація в прикладі виконана классами Berry3.0 хоча можна користуватися будь-якою CSS, при необхдності.

<!-- RSS читалка для новинного сайта -->

[PHP]

<?php // Список URL каналів, які будемо читати $feeds = array( "http://k.img.com.ua/rss/ua/space.xml", "http://k.img.com.ua/rss/ua/technews.xml", "http://k.img.com.ua/rss/ua/chess.xml", "http://k.img.com.ua/rss/ua/web.xml", "http://k.img.com.ua/rss/ua/videoigry.xml", ); // Читаємо кожну новину items $entries = array(); foreach ($feeds as $feed) { $xml = simplexml_load_file($feed); $entries = array_merge($entries, $xml->xpath("//item")); } //Сотруємо новини по даті pubDate usort($entries, function ($feed1, $feed2) { return strtotime($feed2->pubDate) - strtotime($feed1->pubDate); }); ?> <ul class="list-unstyled"> <?php // Вказуємо кількість новин для виводу $NUMITEMS = 4; $count = 0; // Виводимо всі новини в кількості $NUMITEMS foreach ($entries as $entry) { ?> <li> <p class="mar20-b"><?=strftime('<span class="t-orange250">%Y.%m.%d</span><span class="mar20-l t-teal750">%I:%M %p</span>', strtotime($entry->pubDate)) ?></p> <a href="<?=$entry->link ?>"><?=$entry->title ?></a> <p><?=$entry->description ?></p> </li> <p style="clear:both"></p> <?php if (++$count >= $NUMITEMS) break; } ?> </ul>