Simple XML & serialización (serialization)

¡Hola Amigos!

Encontré en el curso de mis viajes, que los objetos obtenidos con la función simplexml_load_file de php no pueden ser serializados.

Para solucionar eso, encontré esta función de PHP, que va a solucionar sus problemas.

function objectsIntoArray($arrObjData, $arrSkipIndices = array()) {
    $arrData = array();
  
    // if input is object, convert into array
    if (is_object($arrObjData)) {
        $arrObjData = get_object_vars($arrObjData);
    }
  
    if (is_array($arrObjData)) {
        foreach ($arrObjData as $index => $value) {
            if (is_object($value) || is_array($value)) {
                $value = objectsIntoArray($value, $arrSkipIndices); // recursive call
            }
            if (in_array($index, $arrSkipIndices)) {
                continue;
            }
            $arrData[$index] = $value;
        }
    }
    return $arrData;
}

Esto puede ser utilizado de la siguiente manera:

$xmlObject = simplexml_load_file("http://twitter.com/statuses/user_timeline/droope123.xml?count=1"); // serializar esto me daría errores de nodo no existente, o algo asi.
$xmlArray = objectsIntoArray($xmlObject);
$serializedXml = serialize($xmlArray);
print_r(unserialize($serializedXml)); // oh, alegría : D 

¡Espero que les sea de utilidad!

Un saludo,
Pedro

Agrega un comentario! los comentarios se aprueban automaticamente

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s