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> |