Exemple #1
0
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;
}
Exemple #2
0
 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;
 }
Exemple #3
0
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;
}