MOON
Server: LiteSpeed
System: Linux server4.datacenterland.com 5.4.203-1-pve #1 SMP PVE 5.4.203-1 (Fri, 26 Aug 2022 14:43:35 +0200) x86_64
User: khakzad (1054)
PHP: 5.6.40
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open, symlink
Upload Files
File: //usr/share/doc/cpanel-php81-xml-serializer-0.21.0/examples/unserializeObject.php
<?PHP
/**
 * This example shows how XML_Serializer and XML_Unserializer
 * work together.
 *
 * A structure is serialized and later it's unserialized from the
 * resulting XML document.
 *
 * @author  Stephan Schmidt <schst@php.net>
 */
error_reporting(E_ALL);

require_once 'XML/Serializer.php';
require_once 'XML/Unserializer.php';
// this is just to get a nested object
$pearError = PEAR::raiseError('This is just an error object',123);

$options = array(
                    XML_SERIALIZER_OPTION_INDENT      => '    ',
                    XML_SERIALIZER_OPTION_LINEBREAKS  => "\n",
                    XML_SERIALIZER_OPTION_DEFAULT_TAG => 'unnamedItem',
                    XML_SERIALIZER_OPTION_TYPEHINTS   => true
                );

$foo = new stdClass();
$foo->value = 'My value';
$foo->error = $pearError;
$foo->xml   = array('This is' => 'cool');
$foo->resource = fopen(__FILE__, 'r');

$serializer = new XML_Serializer($options);
$result = $serializer->serialize($foo);

if ($result === true) {
    $xml = $serializer->getSerializedData();
}

echo '<pre>';
echo htmlspecialchars($xml);
echo '</pre>';

//  be careful to always use the ampersand in front of the new operator 
$unserializer = &new XML_Unserializer();

$status = $unserializer->unserialize($xml);    

if (PEAR::isError($status)) {
    echo 'Error: ' . $status->getMessage();
} else {
    $data = $unserializer->getUnserializedData();
    echo '<pre>';
    print_r($data);
    echo '</pre>';
}
?>