diff rss.php @ 0:629389204276

Import initial
author Franck Deroche <webmaster@defr.org>
date Sat, 20 Oct 2007 14:15:10 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rss.php	Sat Oct 20 14:15:10 2007 +0200
@@ -0,0 +1,58 @@
+<?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>