| 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/atom+xml")) | 
| webmaster@0 | 27 	header("Content-Type: application/atom+xml; charset=utf-8"); | 
| webmaster@0 | 28  else | 
| webmaster@0 | 29 	header("Content-Type: application/xml; charset=utf-8"); | 
| webmaster@0 | 30  echo("<?xml version='1.0' encoding='utf-8'?>\n"); | 
| webmaster@0 | 31  $Data = new DataAccess(); | 
| webmaster@0 | 32  $Data->Query("SELECT * FROM Mess ORDER BY num_mess DESC LIMIT 0, 1"); | 
| webmaster@0 | 33  $val=$Data->GetRow(); | 
| webmaster@0 | 34  $modifiedDate=gmdate("Y-m-d", strtotime($val['DatePost'])) . "T" . gmdate("H:i:s-02:00", strtotime($val['DatePost'])); | 
| webmaster@0 | 35 ?> | 
| webmaster@0 | 36 <feed xmlns="http://www.w3.org/2005/Atom" xml:lang='fr-FR'> | 
| webmaster@0 | 37   <title>Dual Blog</title> | 
| webmaster@0 | 38   <subtitle>Le blog de DeFr, parlant de tout et de rien ^^;</subtitle> | 
| webmaster@0 | 39   <link rel='alternate' type='text/html' href='http://defr.org/blog/' /> | 
| webmaster@0 | 40   <link rel='self' type='application/atom+xml' href='http://defr.org/blog/dualblog.atom' /> | 
| webmaster@0 | 41   <updated><?php echo $modifiedDate; ?></updated> | 
| webmaster@0 | 42   <author> | 
| webmaster@0 | 43    <name>Deroche Franck</name> | 
| webmaster@0 | 44    <uri>http://defr.org</uri> | 
| webmaster@0 | 45   </author> | 
| webmaster@0 | 46   <id>urn:uuid:cface534-634f-4ce8-a07b-3a4187982583</id> | 
| webmaster@0 | 47   <?php | 
| webmaster@0 | 48 | 
| webmaster@0 | 49   $result=$Data->Query("SELECT * FROM Mess ORDER BY num_mess DESC LIMIT 0, 20"); | 
| webmaster@0 | 50   while($val=$Data->GetRow()) { | 
| webmaster@0 | 51    $utf8_Mess=str_replace("</P>", "</p>", str_replace("<P>", "<p>", (str_replace("€", "€", utf8_ensure($val['Message']))))); | 
| webmaster@0 | 52    $utf8_Mess = str_replace(" ", " ", $utf8_Mess); | 
| webmaster@0 | 53    $utf8_Titre=utf8_ensure($val['Titre']); | 
| webmaster@0 | 54    $issuedDate=gmdate("Y-m-d", strtotime($val['DatePost'])) . "T" . gmdate("H:i:s-02:00", strtotime($val['DatePost'])); | 
| webmaster@0 | 55   echo(" | 
| webmaster@0 | 56   <entry> | 
| webmaster@0 | 57    <title type='xhtml'> | 
| webmaster@0 | 58      <div xmlns='http://www.w3.org/1999/xhtml'> | 
| webmaster@0 | 59      {$utf8_Titre} | 
| webmaster@0 | 60      </div> | 
| webmaster@0 | 61    </title> | 
| webmaster@0 | 62    <id>tag:defr.org,2006:{$val['num_mess']}</id> | 
| webmaster@0 | 63    <content type='xhtml'> | 
| webmaster@0 | 64    	<div xmlns='http://www.w3.org/1999/xhtml'> | 
| webmaster@0 | 65 	{$utf8_Mess} | 
| webmaster@0 | 66 	</div> | 
| webmaster@0 | 67    </content> | 
| webmaster@0 | 68    <published>{$issuedDate}</published> | 
| webmaster@0 | 69    <updated>{$issuedDate}</updated> | 
| webmaster@0 | 70    <link rel='alternate' type='text/html' href='http://www.defr.org/blog/posts/{$val['id']}' /> | 
| webmaster@0 | 71   </entry> | 
| webmaster@0 | 72   "); | 
| webmaster@0 | 73   } | 
| webmaster@0 | 74   ?> | 
| webmaster@0 | 75 </feed> |