danielebarchiesi@4: content_header = 'text/xml'; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /* */ danielebarchiesi@4: danielebarchiesi@4: function getSerializedArray($struct, $root = 1, $ind = ' ') { danielebarchiesi@4: $n = "\n"; danielebarchiesi@4: $r = ''; danielebarchiesi@4: $is_flat = $this->isAssociativeArray($struct) ? 0 : 1; danielebarchiesi@4: foreach ($struct as $k => $v) { danielebarchiesi@4: $tag = $is_flat ? 'item' : preg_replace('/[\s]/s', '_', $k); danielebarchiesi@4: $tag = preg_replace('/^.*([a-z0-9\-\_]+)$/Uis', '\\1', $tag); danielebarchiesi@4: $r .= $n . $ind . '<' . $tag . '>' . (is_array($v) ? $this->getSerializedArray($v, 0, $ind . ' ') . $n . $ind : htmlspecialchars($v)) . ''; danielebarchiesi@4: } danielebarchiesi@4: if ($root) $r = $this->getHead() . $r . $this->getFooter(); danielebarchiesi@4: return $r; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /* */ danielebarchiesi@4: danielebarchiesi@4: function getHead() { danielebarchiesi@4: $n = "\n"; danielebarchiesi@4: $r = ''; danielebarchiesi@4: $r .= $n . ''; danielebarchiesi@4: return $r; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: function getFooter() { danielebarchiesi@4: $n = "\n"; danielebarchiesi@4: $r = $n . ''; danielebarchiesi@4: return $r; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /* */ danielebarchiesi@4: danielebarchiesi@4: function isAssociativeArray($v) { danielebarchiesi@4: foreach (array_keys($v) as $k => $val) { danielebarchiesi@4: if ($k !== $val) return 1; danielebarchiesi@4: } danielebarchiesi@4: return 0; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /* */ danielebarchiesi@4: danielebarchiesi@4: } danielebarchiesi@4: