[PHP][XML] Własny kanał RSS
Ten wpis ma 16 lat. Od tego czasu przeglądarki i narzędzia mogły się zmienić, więc zanim użyjesz kodu, sprawdź go z aktualną dokumentacją.
W dzisiejszym artykule poruszę kwestię tworzenia własnego kanału RSS na stronę WWW. Artykuł ten powstaje na prośbę jednego z czytelników mojego bloga.
Jak wiadomo, kanały RSS służą do szybkiej prezentacji wiadomości ze strony w formie skrótów, które można potem odczytać w różnego rodzaju czytnikach RSS.
Na początek zdefiniujemy przykładową bazę danych z której będziemy pobierać dane dotyczące wpisów w kanale RSS. Nasza baza wygląda następująco:
Kolejnym krokiem jest zbudowanie połączenia między bazą danych a naszym kodem napisanym w PHP.
Taki skrypt przyjmuje taki zapis:
< ?php //plik db.php $user = "nazwa_uzytkownika"; $pass = "haslo_do_bazy"; $db = "serwer_bazy_danych"; $dbname = "rss"; //nazwa bazy danych $polaczenie = mysql_connect($db, $user, $pass) or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error()); $baza = mysql_select_db($dbname, $polaczenie); ?> |
Teraz, stworzymy plik o nazwie index.php w którym będzie zawarty kod generujący kanał RSS (nazwa pliku nie ma tutaj znaczenia). Wygląda on następująco:
< ?php
header('Content-Type: application/xml; charset=utf-8');
include('db.php');
?>
<xml version="1.0" encoding="utf-8">
<rss version="2.0">
<channel>
<title>Blog webmasterski | Piotr Nalepa</title>
<link>https://blog.piotrnalepa.pl</link>
<description>MĂłj blog webmasterski</description>
</channel>
< ?php
$zapytanie = 'SELECT * FROM wpisy ORDER BY data_dodania DESC LIMIT 5';
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
$wynik = mysql_query($zapytanie) or die(mysql_error());
while($row = mysql_fetch_array($wynik))
{
echo ' <item>
<title>'.$row["tytul"].'</title>
<link>'.$row["link"].'</link>
<description>'.$row["opis"].'</description>
';
}
?>
</rss>
</xml>
Jak widać w powyższym kodzie po zapisaniu nazwy kanału następuje stworzenie zapytania generującego dane do kanału RSS, dzięki któremu wywołamy 5 ostatnich wpisów ze strony na kanał RSS.
Zaraz potem następuje pętla "while" która zapisuje dane z bazy do języka XML, w którym każdy nowy wpis jest definiowany za pomocą znacznika
Ponadto przed wykonaniem zapytania SQL ustawiłem wymuszenie kodowania transmisji danych na UTF-8.
Jak widać, kod generujący dane do kanału RSS nie jest rozbudowany i to dzięki niemu możemy stworzyć pierwszy prosty kanał RSS naszej strony.