session string 转换

xielk 2013-02-28 01:45:39
dateformats|a:1:{s:7:"phpdate";s:0:"";}
上面这句是session文件里面的内容。
格式为:变量名|类型:长度:值;
请问各位,怎么将第一行转成变量。
unserialize 无用,还有什么其它的办法没?
...全文
246 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-02-28
  • 打赏
  • 举报
回复
不知道你这个函数对于复杂的 session 串是否能应付
xielk 2013-02-28
  • 打赏
  • 举报
回复
还是贴一个有用的函数。 function formatSession($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; }
xuzuning 2013-02-28
  • 打赏
  • 举报
回复
$s = 'dateformats|a:1:{s:7:"phpdate";s:0:"";}';

session_start(); //启用 session
$old = $_SESSION; //保存原有的 session 变量
$_SESSION = array(); //初始化
session_decode($s); //解码
list($new, $_SESSION) = array($_SESSION, $old); //取回
print_r($new);
当然,你也可以自己写个解码函数。很简单的

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧