function unserialize_xml($input, $callback = null, $recurse = false) { $data = !$recurse && is_string($input) ? simplexml_load_string($input) : $input; if ($data instanceof SimpleXMLElement) { $data = (array) $data; } if (is_array($data)) { foreach ($data as &$item) { $item = unserialize_xml($item, $callback, true); } } return !is_array($data) && is_callable($callback) ? call_user_func($callback, $data) : $data; }
function unserialize_xml($input, $recurse = false) { // Get input, loading an xml string with simplexml if its the top level of recursion $data = !$recurse && is_string($input) ? simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOWARNING | LIBXML_NOERROR) : $input; // Convert SimpleXMLElements to array if ($data instanceof SimpleXMLElement) { $data = (array) $data; } // Recurse into arrays if (is_array($data)) { foreach ($data as &$item) { $item = unserialize_xml($item, true); } } return $data; }
function unserialize_xml($input, $callback = null, $recurse = false) { // Get input, loading an xml string with simplexml if its the top level of recursion $data = !$recurse && is_string($input) ? simplexml_load_string($input) : $input; // Convert SimpleXMLElements to array if ($data instanceof SimpleXMLElement) { $data = (array) $data; } // Recurse into arrays if (is_array($data)) { foreach ($data as &$item) { $item = unserialize_xml($item, $callback, true); } } // Run callback and return return !is_array($data) && is_callable($callback) ? call_user_func($callback, $data) : $data; }