- simplexml_load_string: documentation ( source)
- print_r: documentation ( source)
- trim: documentation ( source)
<?php
$buffer = <<<XML
<pages>
<item>about-porto</item>
<item>about-porto-4</item>
<item>no-route-2</item>
<item>porto_home_4</item>
<item>porto_home_4_old</item>
</pages>
XML;
function XML2Array(SimpleXMLElement $parent)
{
$array = array();
foreach ($parent as $name => $element) {
($node = & $array[$name])
&& (is_array($node) ?: $node = array($node))
&& $node = & $node[];
$node = $element->count() ? XML2Array($element) : trim($element);
}
return $array;
}
$xml = simplexml_load_string($buffer);
$array = XML2Array($xml);
$array = array($xml->getName() => $array);
print_r($array);