note 101687 added to function.session-decode
| From: | jason at joeymail dot net | Date: | Wed, 05 Jan 2011 00:23:52 +0000 |
| Subject: | note 101687 added to function.session-decode | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-175455@lists.php.net to get a copy of this message | ||
Yet another attempt a wheel re-invention, using match with offsets rather than split...
<?php
function unserializesession( $data )
{
if( strlen( $data) == 0)
{
return array();
}
// match all the session keys and offsets
preg_match_all('/(^|;|\})([a-zA-Z0-9_]+)\|/i', $data, $matchesarray,
PREG_OFFSET_CAPTURE);
$returnArray = array();
$lastOffset = null;
$currentKey = '';
foreach ( $matchesarray[2] as $value )
{
$offset = $value[1];
if(!is_null( $lastOffset))
{
$valueText = substr($data, $lastOffset, $offset - $lastOffset );
$returnArray[$currentKey] = unserialize($valueText);
}
$currentKey = $value[0];
$lastOffset = $offset + strlen( $currentKey )+1;
}
$valueText = substr($data, $lastOffset );
$returnArray[$currentKey] = unserialize($valueText);
return $returnArray;
}
?>
----
Server IP: 69.147.83.197
Probable Submitter: 60.240.49.115
----
Manual Page -- http://www.php.net/manual/en/function.session-decode.php
Edit -- https://master.php.net/note/edit/101687
Del: integrated -- https://master.php.net/note/delete/101687/integrated
Del: useless -- https://master.php.net/note/delete/101687/useless
Del: bad code -- https://master.php.net/note/delete/101687/bad+code
Del: spam -- https://master.php.net/note/delete/101687/spam
Del: non-english -- https://master.php.net/note/delete/101687/non-english
Del: in docs -- https://master.php.net/note/delete/101687/in+docs
Del: other reasons-- https://master.php.net/note/delete/101687
Reject -- https://master.php.net/note/reject/101687
Search -- https://master.php.net/manage/user-notes.php