note 60963 added to function.wddx-deserialize

From: Date: Sat, 21 Jan 2006 12:40:42 +0000
Subject: note 60963 added to function.wddx-deserialize
Groups: php.notes 
Request: Send a blank email to php-notes+get-102207@lists.php.net to get a copy of this message
Here's a handy wddx_deserialize clone I wrote a while back. It uses PHP5 SimpleXML and recursion to do pretty much the same task as wddx_deserialize. Hope it comes in handy for someone. <?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]); } } } ?> ---- Server IP: 64.246.30.37 Probable Submitter: 168.210.90.181 (proxied: 66.18.83.225) ---- Manual Page -- http://www.php.net/manual/en/function.wddx-deserialize.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+60963 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+60963&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+60963&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+60963&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+60963&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+60963&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+60963&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+60963&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+60963&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#102207) next »