note 59600 added to function.serialize

From: Date: Sat, 10 Dec 2005 21:17:48 +0000
Subject: note 59600 added to function.serialize
Groups: php.notes 
Request: Send a blank email to php-notes+get-99918@lists.php.net to get a copy of this message
The only complaint I have about serializing, is that it will not save the variable name. To fix this, as well as add support for more then one variable/array, I chose to write this class: class SaveVar { function store($list) { $sl = explode("|", $list); for ($i = 0; $i < count($sl); $i++) { $varname = $sl[$i]; global $$varname; $thevar = $$varname; $serialized = serialize($thevar); $saved[$i] = base64_encode($varname)."@".base64_encode($serialized); } $data = implode("|", $saved); return($data); } function restore($stored) { $sv = explode("|", $stored); for ($i = 0; $i < count($sv); $i++) { $svp = $sv[$i]; list($name64, $value64) = explode("@", $svp); $name = base64_decode($name64); $value = base64_decode($value64); global $$name; $$name = unserialize($value); } } } ---- An example of using this class is as follows... ---- $arr1 = array("Hello", "World"); $arr2 = array("World", "Hello"); $sv = new SaveVar; $saved = $sv->store("arr1|arr2"); $arr1 = NULL; $arr2 = NULL; echo $saved; echo "<HR>"; $sv->restore($saved); print_r($arr1); echo "<BR>"; print_r($arr2); ---- I hope someone finds this useful... -Jestin S Larson ---- Manual Page -- http://www.php.net/manual/en/function.serialize.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+59600 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+59600&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+59600&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+59600&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+59600&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+59600&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+59600&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+59600&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+59600&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#99918) next »