]> CyberLeo.Net >> Repos - Github/YOURLS.git/blob - includes/functions-xml.php
Initial commit (importing from http://svn.planetozh.com/ozhin)
[Github/YOURLS.git] / includes / functions-xml.php
1 <?php\r
2 \r
3 // From: http://vantulder.net/f2o/notities/arraytoxml/\r
4 function yourls_array_to_xml($array, $level=1) {\r
5                 $xml = '';\r
6         if ($level==1) {\r
7                 $xml .= '<?xml version="1.0" encoding="UTF-8"?>'.\r
8                                 "\n<response>\n";\r
9         }\r
10         foreach ($array as $key=>$value) {\r
11                 $key = strtolower($key);\r
12                 if (is_array($value)) {\r
13                         $multi_tags = false;\r
14                         foreach($value as $key2=>$value2) {\r
15                                 if (is_array($value2)) {\r
16                                         $xml .= str_repeat("\t",$level)."<$key>\n";\r
17                                         $xml .= array_to_xml($value2, $level+1);\r
18                                         $xml .= str_repeat("\t",$level)."</$key>\n";\r
19                                         $multi_tags = true;\r
20                                 } else {\r
21                                         if (trim($value2)!='') {\r
22                                                 if (htmlspecialchars($value2)!=$value2) {\r
23                                                         $xml .= str_repeat("\t",$level).\r
24                                                                         "<$key><![CDATA[$value2]]>".\r
25                                                                         "</$key>\n";\r
26                                                 } else {\r
27                                                         $xml .= str_repeat("\t",$level).\r
28                                                                         "<$key>$value2</$key>\n";\r
29                                                 }\r
30                                         }\r
31                                         $multi_tags = true;\r
32                                 }\r
33                         }\r
34                         if (!$multi_tags and count($value)>0) {\r
35                                 $xml .= str_repeat("\t",$level)."<$key>\n";\r
36                                 $xml .= array_to_xml($value, $level+1);\r
37                                 $xml .= str_repeat("\t",$level)."</$key>\n";\r
38                         }\r
39                 } else {\r
40                         if (trim($value)!='') {\r
41                                 if (htmlspecialchars($value)!=$value) {\r
42                                         $xml .= str_repeat("\t",$level)."<$key>".\r
43                                                         "<![CDATA[$value]]></$key>\n";\r
44                                 } else {\r
45                                         $xml .= str_repeat("\t",$level).\r
46                                                         "<$key>$value</$key>\n";\r
47                                 }\r
48                         }\r
49                 }\r
50         }\r
51         if ($level==1) {\r
52                 $xml .= "</response>\n";\r
53         }\r
54         return $xml;\r
55 }\r
56 \r
57 ?>