社区
基础编程
帖子详情
如何将会话内容反序列化成数组
countstars
2006-02-24 10:53:08
比如会话内容
d|i:0;u|i:1;
如何将其转为数组
$session = array("d"=>0,"u"=>1);
非常感谢。
...全文
111
4
打赏
收藏
如何将会话内容反序列化成数组
比如会话内容 d|i:0;u|i:1; 如何将其转为数组 $session = array("d"=>0,"u"=>1); 非常感谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
countstars
2006-02-26
打赏
举报
回复
上了两个define,补上
define('SESSION_DELIMITER', '|');
define('SESSION_UNDEF_MARKER', '!');
countstars
2006-02-26
打赏
举报
回复
我要从数据库里取会话来分析,所以上面的都不切实际
以下是Justin(http://www.phpsalon.com/)帮我写的程序片段:
function my_session_decode($str) {
$str_len = strlen($str);
$p = 0;
$ret = array();
while ($p < $str_len) {
$q = $p;
while ($str[$q] != SESSION_DELIMITER) {
if (++$q > $str_len) break 2;
}
if ($str[$p] == SESSION_UNDEF_MARKER) {
$p++;
$has_value = false;
} else {
$has_value = true;
}
$key_len = $q - $p;
$key = substr($str, $p, $key_len);
$q++;
if ($has_value) {
$type = substr($str, $q, 1);
$value = @unserialize(substr($str, $q, $str_len));
if ($value !== FALSE) {
switch ($type) {
case 'i':
// integer
$q += strlen(strval($value)) + 3;
break;
case 's':
// string
$q += strlen(strval(strlen($value))) + 6 + strlen($value);
break;
case 'a':
// array
break;
case 'b':
// boolean
break;
case 'o':
// object
break;
case 'r':
// resource
break;
case 'd':
// double
break;
}
$ret[$key] = $value;
}
} else {
$ret[$key] = '';
}
$p = $q;
}
return $ret;
}
xuzuning
2006-02-24
打赏
举报
回复
还是这样比较稳妥
print_r(foo('d|i:0;u|i:1;'));
function foo($s) {
if(! isset($_SESSION)) {
@session_start();
}
$t = $_SESSION;
session_decode($s);
list($t, $_SESSION) = array($_SESSION, $t);
return $t;
}
xuzuning
2006-02-24
打赏
举报
回复
$ar = explode(';', 'd|i:0;u|i:1;');
foreach($ar as $v) {
if($v) {
list($k, $v) = explode('|', $v.';');
$p[$k] = unserialize($v);
}
}
print_r($p);
这只是测试例,当值中出现“;”就有问题了
PHP7
会话
控制
King老师精心打造的PHP7
会话
控制课程,由浅入深的讲解了PHP中的
会话
控制思想,解决方案,详细剖析了PHP中的session和cookie的使用,并通过实战案例进行实战演练,让我们一起开启
会话
控制之旅吧~ 山哥出品,必属精品...
php-session
反序列化
一篇对session
反序列化
原理的探索
php类对象序列化,PHP中的串行化变量和序列化对象
串行化大概就是把一些变量转化
成
为字符串的字节流的形式,这样比较容易传输、存储。当然,关是传输存储没有什么,关键是变
成
串的形式以后还能够转化回来,而且能够保持原来数据的结构。在PHP中有多串行化处理的函数...
PHP中的串行化变量和序列化对象
PHP中的串行化变量和序列化对象
javaweb:
会话
管理和保存
会话
数据的两种技术(Cookie、Session)
•
会话
可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个
会话
。
会话
过程中要解决的一些问题? •每个用户与服务器进行交互的过程中,各自会有一些...
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章