Wszystko co dotyczy tworzenia stron WWW.
Awatar użytkownika

WinSxS

Zasłużony użytkownik
Posty: 398
Rejestracja: 03 lut 2016, 20:36
    Windows 10 Firefox

Post15 kwie 2024, 3:36

Wynik:
Obrazek

Kod:

Kod: Zaznacz cały

<?php
$rss_feed_url = 'https://feeds.bbci.co.uk/news/world/rss.xml';
$options = [
    'http' => [
        'user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/122.0', // default useragent
    ],
];

$context = stream_context_create($options);
$feed_contents = file_get_contents($rss_feed_url, false, $context);

if ($feed_contents !== false) {
    $feed = simplexml_load_string($feed_contents);

    if ($feed) {
        $counter = 0;
        foreach ($feed->channel->item as $item) {
            if ($counter < 5) {
                $title = $item->title;
                $link = $item->link;
                $description = $item->description;
            $pubDateUTC = new DateTime($item->pubDate, new DateTimeZone('UTC'));
            $pubDateUTC->setTimezone(new DateTimeZone('Europe/Warsaw'));
            $pubDateLocal = $pubDateUTC->format('H:i');

                echo '<div class="news-item">';
                echo '<div class="news-date">' . $pubDateLocal . ' <span class="news-title"> <a href="' . $link . '" target="_blank">' . $title . '</a> </span></div>';
                echo '</div>';

                $counter++;
            } else {
                break;
            }
        }
    } else {
        echo 'Błąd ładowania kanału RSS.';
    }
} else {
    echo 'Błąd pobierania danych z kanału RSS.';
}
?>
Jeśli chcemy zmienić ilość wyświetlanych linków, należy zmienić wartość 5 w "if ($counter < 5)" na dowolną wybraną wartość, jednakże u mnie maksymalnie pobiera około 40 linków.
Dla przykładu RSS BBC, ale powinno przyjąć każdy inny RSS.
Obrazek Notebook: (HP Pavilion 15-eh1000nw) Ryzen 5 5500U + 8 GB DDR4-3200 + Windows 11
Powerful XP machine: Core i5 2500K + 16 GB DDR3-1333 + ASUS P8H67 + GTX 550 Ti + dualboot Windows XP x86/x64
Server/NAS: (Acer E1-530G) Pentium 2117U + 12 GB DDR3-1600 + Windows Server 2008 R2
Spoiler
Network: 600 Mbps / ARRIS TG6441B + TP-Link WR740N as wireless extender/access point
Phone: Vivo v33s 8 GB/128 GB
Console: Xbox One 1gen 500 GB
TV: Xiaomi Mi LED TV 55"

Kto jest online

Użytkownicy przeglądający to forum: Semrush [Bot] i 0 gości