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