1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| <?php
function is_assoc($var)
{
return is_array($var) && array_diff_key($var,array_keys(array_keys($var)));
}
function array2xml($buffer) {
$xml = htmlspecialchars('<?xml version="1.0" encoding="utf-8"?>').'<br/>';
$xml .= htmlspecialchars('<service version="1.0"\>').'<br/>';
foreach($buffer as $val) {
$xml .= htmlspecialchars(' <document>').'<br/>';
foreach ($val as $key => $value) {
$xml .= htmlspecialchars(' <'.$key.'>');
if(is_assoc($value)) {
//echo '<br/>';
foreach($value as $va) {
foreach ($va as $k => $v) {
$xml .= htmlspecialchars ('<'.$k.'>'.utf8_encode($v).'</'.$k.'>').'<br/>';
}
}
$xml.=htmlspecialchars('</'.$key.'>').'<br/>';
} else $xml.=htmlspecialchars(utf8_encode($value).'</'.$key.'>').'<br/>';
}
$xml .= htmlspecialchars(' </document>').'<br/>';
}
$xml .= htmlspecialchars('</service>').'<br/>';
return $xml;
}
// exemple d'utilisation
$ar = array("var1" => "val1","var2" => "val2");
$arr = array(
array("id" => "1",
"pseudo" => "mq",
"name" => "marc",
"tab" => $ar),
array("id" => "2",
"pseudo" => "poppy",
"name" => "axel")
);
$xml = array2xml($arr);
echo $xml;
?> |
Partager