Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

wddx_deserialize

WDDX Funktionen

    Befehl:
mixed wddx_deserialize ( string $packet )


    Beschreibung:
wddx_deserialize() übernimmt einen packet String and deserialisiert diesen. Es wird entweder ein String, eine Zahl oder ein Array zurückgegeben. 'Structures' werden in assoziative Arrays deserialisiert.


    Aktiv in Version:
(PHP 4, PHP 5, PHP 7)

wddx_deserialize() - Beispiel:


Eingabe:
Hier ist eine praktische wddx_deserialize Klon. Dieses verwendet PHP5 SimpleXML und Rekursion so ziemlich die gleiche Aufgabe wie wddx_deserialize erfüllt.


<?php
if (!function_exists('wddx_deserialize'))
{
    /**
     * Clone implementation of wddx_deserialize
     */
    function wddx_deserialize($xmlpacket)
    {
        if ($xmlpacket instanceof SimpleXMLElement)
        {
            if (!empty($xmlpacket->struct))
            {
                $struct = array();
                foreach ($xmlpacket->xpath("struct/var") as $var)
                {
                    if (!empty($var["name"]))
                    {
                        $key = (string) $var["name"];
                        $struct[$key] = wddx_deserialize($var);
                    }
                }
                return $struct;
            }
            else if (!empty($xmlpacket->array))
            {
                $array = array();
                foreach ($xmlpacket->xpath("array/*") as $var)
                {
                    array_push($array, wddx_deserialize($var));
                }
                return $array;
            }
            else if (!empty($xmlpacket->string))
            {
                return (string) $xmlpacket->string;
            }
            else if (!empty($xmlpacket->number))
            {
                return (int) $xmlpacket->number;
            }
            else
            {
                if (is_numeric((string) $xmlpacket))
                {
                    return (int) $xmlpacket;
                }
                else
                {
                    return (string) $xmlpacket;
                }
            }
        }
        else
        {
            $sxe = simplexml_load_string($xmlpacket);
            $datanode = $sxe->xpath("/wddxPacket[@version='1.0']/data");
            return wddx_deserialize($datanode[0]);
        }
    }
}
?>


<?php
$text = "Jür";
$packet = wddx_serialize_value($text);
$header = '<?xml version="1.0" encoding="iso-8859-1"?>';
$newText = wddx_deserialize($header . $packet);
echo "WDDX Packet: $packet\n";
echo "Deserialized Object: $newText\n";
?>


Ausgabe:
WDDX Packet: &lt;wddxPacket version='1.0'&gt;&lt;header/&gt;&lt;data&gt;&lt;string&gt;J�r&lt;/string&gt;&lt;/data&gt;&lt;/wddxPacket&gt;
Deserialized Object: J�r
WDDX Funktionen