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: <wddxPacket version='1.0'><header/><data><string>J�r</string></data></wddxPacket>
Deserialized Object: J�r
Deserialized Object: J�r
WDDX Funktionen