Mercurial > defr > DualBlog
view rss.php @ 6:2ea1b19e21f3
Reformatage des requetes, on parcoure toujours l'integralité du recordset.
On respecte maintenant la limite de 80 caractères sur les différentes
requetes d'une part, et on limite directement à 10 le nombre de
post dans la requete de base de façon a ne pas devoir le faire
en PHP ensuite (simplification du code et amelioration des performances).
author | Franck Deroche <webmaster@defr.org> |
---|---|
date | Sat, 20 Oct 2007 17:03:08 +0200 |
parents | 629389204276 |
children |
line wrap: on
line source
<?php include("classes.php"); function utf8_ensure($str) { return seems_utf8($str)?$str:utf8_encode($str); } function seems_utf8($Str) { for ($i=0; $i<strlen($Str) && $i<150; $i++) { if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b else return false; # Does not match any model for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ? if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80)) return false; } } return true; } if(stristr($_SERVER['HTTP_ACCEPT'], "application/rss+xml")) header("Content-Type: application/rss+xml; charset=utf-8"); else header("Content-Type: text/xml; charset=utf-8"); echo("<?xml version='1.0' encoding='utf-8'?>\n"); ?> <rss version='2.0'> <channel> <title>Dual Blog</title> <link>http://www.defr.org/blog/</link> <description>Le blog de DeFr, parlant de tout et de rien ^^;</description> <language>fr-fr</language> <?php $Data = new DataAccess(); $Data->Connect(); $Data->Query("SELECT * FROM Mess ORDER BY num_mess DESC LIMIT 0, 20"); while($val=$Data->GetRow()) { $utf8_Mess=utf8_ensure($val['Message']); $utf8_Titre=utf8_ensure($val['Titre']); $dateRFC=gmdate("r", strtotime($val['DatePost'])); echo(" <item> <title>{$utf8_Titre}</title> <description><![CDATA[{$utf8_Mess}]]></description> <pubDate>{$dateRFC}</pubDate> <link>http://www.defr.org/blog/posts/{$val['num_mess']}</link> </item> "); } $Data->Close(); ?> </channel> </rss>