Kolejny, programistyczny, wpis „ku pamięci”.
Poniższe rozwiązanie generuje prosty kanał RSS, który jest bezbłędnie interpretowany przez większość czytników (wliczając Google Reader).
Plik db.php przechowuje ustawienie dostępu do bazy MySQL.
//db.php
<?php
$user = "username";
$pass = "password";
$db = "localhost";
$dbname = "dbname";
$polaczenie = mysql_connect($db, $user, $pass) or die('Brak połączenia z serwerem MySQL. Błąd: '.mysql_error());
$baza = mysql_select_db($dbname, $polaczenie);
?>
Plik rss.php jest odpowiedzialny za wygenerowanie odpowiedniego pliku XML – po zaimplementowaniu poniższego kodu wystarczy dodać http://www.twojastrona.pl/rss.php do czytnika.
//rss.php
<?php
header('Content-Type: application/xml; charset=utf8');
include('db.php');
$rss .= "<?xml version=\"1.0\" encoding=\"utf8\"?>\r\n";
$rss .= "<rss version=\"2.0\">\r\n";
$rss .= "<channel>\r\n";
$rss .= "<title>Tytył</title>\r\n";
$rss .= "<link>http://www.twojastrona.pl</link>\r\n";
$rss .= "<description>Opis......</description>\r\n";
$rss .= "<image>\r\n";
$rss .= "<title>Logo</title>\r\n";
$rss .= "<link>http://www.twojastrona.pl</link>\r\n";
$rss .= "<url>http://www.twojastrona.pl/logo.jpg</url>\r\n";
$rss .= "</image>\r\n";
echo $rss;
$db_query = 'SELECT * FROM blog ORDER BY id DESC';
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
$db_wynik = mysql_query($db_query) or die(mysql_error());
while($row = mysql_fetch_array($db_wynik))
{
echo ' <item>
<title>'.$row["tytul"].'</title>
<link>'.$row["link"].'</link>
<description>'.$row["wpis"].'</description>
</item>';
}
?>
</rss>
</xml>
Uwaga: Powyższy kod jest strasznie prymitywny, ale … działa.
Na koniec polecam bardziej eleganckie (dość rozbudowana klasa obsługująca kanały RSS napisana w PHP) rozwiązanie znalezione w sieci: Link