view rss.php @ 33:c6508503269a

Possibilité d'avoir les dates en ISO 8601, requis par Atom.
author Franck Deroche <webmaster@defr.org>
date Mon, 05 Nov 2007 09:23:40 +0100
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>