note 93389 added to function.unserialize
| From: | TBag at osu1 dot php dot net | Date: | Mon, 07 Sep 2009 19:46:06 +0000 |
| Subject: | note 93389 added to function.unserialize | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-160280@lists.php.net to get a copy of this message | ||
My first post on php.net. Hope someone finds it helpfull. These few functions will serialize and
unserialize arrays and objects. It works recursively too. I call them "might_..."
because they test to see if any action is required.
function might_serialize($val){
if(is_object($val)){
$obj_keys = array_keys(get_object_vars($val));
foreach($obj_keys as $k){ $val->$k = might_serialize($val->$k); }
$val = serialize($val);
}
if(is_array($val)){
foreach($val as &$v){ $v = might_serialize($v); }
$val = serialize($val);
}
return $val;
}
function might_unserialized($val){
//$pattern = "/.*\{(.*)\}/";
if(is_serialized($val)){
$ret = unserialize($val);
foreach($ret as &$r){
$r = might_unserialized($r);
}
return $ret;
}else { return $val; }
}
function is_serialized($val){
if (!is_string($val)){ return false; }
if (trim($val) == "") { return false; }
//if (preg_match("/^(i|s|a|o|d)(.*);/si",$val)) { return true; }
if (preg_match("/^(i|s|a|o|d):(.*);/si",$val)) { return true; }
return false;
}
----
Server IP: 72.55.140.6
Probable Submitter: 24.68.245.110
----
Manual Page -- http://www.php.net/manual/en/function.unserialize.php
Edit -- https://master.php.net/note/edit/93389
Del: integrated -- https://master.php.net/note/delete/93389/integrated
Del: useless -- https://master.php.net/note/delete/93389/useless
Del: bad code -- https://master.php.net/note/delete/93389/bad+code
Del: spam -- https://master.php.net/note/delete/93389/spam
Del: non-english -- https://master.php.net/note/delete/93389/non-english
Del: in docs -- https://master.php.net/note/delete/93389/in+docs
Del: other reasons-- https://master.php.net/note/delete/93389
Reject -- https://master.php.net/note/reject/93389
Search -- https://master.php.net/manage/user-notes.php