protected function unserializePHP($session_data)
{
$return_data = array();
$offset = 0;
while ($offset < mb_orig_strlen($session_data)) {
if (!strstr(substr($session_data, $offset), "|")) {
return $return_data;
//throw new \Exception("invalid session data, remaining: " . substr($session_data, $offset));
}
$pos = mb_orig_strpos($session_data, "|", $offset);
$num = $pos - $offset;
$varname = substr($session_data, $offset, $num);
$offset += $num + 1;
$data = unserialize(substr($session_data, $offset));
$return_data[$varname] = $data;
$offset += mb_orig_strlen(serialize($data));
}
return $return_data;
}