| 
webmaster@0
 | 
     1 <?php | 
| 
webmaster@0
 | 
     2  | 
| 
webmaster@0
 | 
     3 include("classes.php"); | 
| 
webmaster@0
 | 
     4  | 
| 
webmaster@0
 | 
     5  function utf8_ensure($str) { | 
| 
webmaster@0
 | 
     6   return seems_utf8($str)?$str:utf8_encode($str); | 
| 
webmaster@0
 | 
     7  } | 
| 
webmaster@0
 | 
     8    | 
| 
webmaster@0
 | 
     9  function seems_utf8($Str) { | 
| 
webmaster@0
 | 
    10   for ($i=0; $i<strlen($Str) && $i<150; $i++) { | 
| 
webmaster@0
 | 
    11    if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb | 
| 
webmaster@0
 | 
    12    elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb | 
| 
webmaster@0
 | 
    13    elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb | 
| 
webmaster@0
 | 
    14    elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb | 
| 
webmaster@0
 | 
    15    elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb | 
| 
webmaster@0
 | 
    16    elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b | 
| 
webmaster@0
 | 
    17    else return false; # Does not match any model | 
| 
webmaster@0
 | 
    18    for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ? | 
| 
webmaster@0
 | 
    19     if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80)) | 
| 
webmaster@0
 | 
    20     return false; | 
| 
webmaster@0
 | 
    21    } | 
| 
webmaster@0
 | 
    22   } | 
| 
webmaster@0
 | 
    23   return true; | 
| 
webmaster@0
 | 
    24  } | 
| 
webmaster@0
 | 
    25  | 
| 
webmaster@0
 | 
    26  if(stristr($_SERVER['HTTP_ACCEPT'], "application/rss+xml")) | 
| 
webmaster@0
 | 
    27 	header("Content-Type: application/rss+xml; charset=utf-8"); | 
| 
webmaster@0
 | 
    28  else | 
| 
webmaster@0
 | 
    29 	header("Content-Type: text/xml; charset=utf-8"); | 
| 
webmaster@0
 | 
    30  echo("<?xml version='1.0' encoding='utf-8'?>\n"); | 
| 
webmaster@0
 | 
    31 ?> | 
| 
webmaster@0
 | 
    32 <rss version='2.0'> | 
| 
webmaster@0
 | 
    33  <channel> | 
| 
webmaster@0
 | 
    34   <title>Dual Blog</title> | 
| 
webmaster@0
 | 
    35   <link>http://www.defr.org/blog/</link> | 
| 
webmaster@0
 | 
    36   <description>Le blog de DeFr, parlant de tout et de rien ^^;</description> | 
| 
webmaster@0
 | 
    37   <language>fr-fr</language> | 
| 
webmaster@0
 | 
    38   <?php | 
| 
webmaster@0
 | 
    39   $Data = new DataAccess(); | 
| 
webmaster@0
 | 
    40   $Data->Connect(); | 
| 
webmaster@0
 | 
    41   $Data->Query("SELECT * FROM Mess ORDER BY num_mess DESC LIMIT 0, 20"); | 
| 
webmaster@0
 | 
    42   while($val=$Data->GetRow()) { | 
| 
webmaster@0
 | 
    43    $utf8_Mess=utf8_ensure($val['Message']); | 
| 
webmaster@0
 | 
    44    $utf8_Titre=utf8_ensure($val['Titre']); | 
| 
webmaster@0
 | 
    45    $dateRFC=gmdate("r", strtotime($val['DatePost'])); | 
| 
webmaster@0
 | 
    46   echo(" | 
| 
webmaster@0
 | 
    47   <item> | 
| 
webmaster@0
 | 
    48    <title>{$utf8_Titre}</title> | 
| 
webmaster@0
 | 
    49    <description><![CDATA[{$utf8_Mess}]]></description> | 
| 
webmaster@0
 | 
    50    <pubDate>{$dateRFC}</pubDate> | 
| 
webmaster@0
 | 
    51    <link>http://www.defr.org/blog/posts/{$val['num_mess']}</link> | 
| 
webmaster@0
 | 
    52   </item> | 
| 
webmaster@0
 | 
    53   "); | 
| 
webmaster@0
 | 
    54   } | 
| 
webmaster@0
 | 
    55   $Data->Close(); | 
| 
webmaster@0
 | 
    56   ?> | 
| 
webmaster@0
 | 
    57  </channel> | 
| 
webmaster@0
 | 
    58 </rss> |