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