Session中的值是怎么的格式样存储的?

已邀请:

zkbhj - 凯冰科技站长

赞同来自:

打开一个session文件,查看是很了然的。里面就是保存的是一些被序列化后的值。也明白一个知识点,"php圣经"中讲解session的时候,提到session值做被序列化了。下面看到的session内容就是被序列化了。

打开一个session文件,内容如下:
cityID|i:0;cityName|s:3:"all";fanwe_lang|s:5:"zh-cn";fanwe_currency|a:4:{s:2:"id";s:1:"1";s:6:"name_1";s:9:"人民币";s:4:"unit";s:3:"¥";s:5:"radio";s:6:"1.0000";}_fanwe_hash__|s:32:"77c18770c6cb5d89444c407aaa3e8477";


总结出读取规则:

1、每一个session的值是以分号";"分开的。比如“cityID|i:0;cityName|s:3:"all";”就是一个完整的session值结束

2、里面的读取规则:符号“|”前面表示session名称。符号后面是该session的具体信息。包括:数据类型,字符长度,内容。上面第一个就相当于使用如下php代码访问:$_SESSION['cityID']。后面的s表示数据值的长度,3表示字符长度。比如这一段:fanwe_lang|s:5:"zh-cn";  fanwe_lang是变量的名称,变量值是"zh-cn",长度刚好是5,就是”s:5“标明的。最后"all"就表示session的具体值了。就是使用代码$_SESSION['cityID']后会得到的结果。

3、一个session可以保存一个数组。符号{}表示数组的内容。上面的花括号{}是$_SESSION['fanwe_currency']所保存的内容。要想查看id的值,就使用代码:$_SESSION['fanwe_currency']['id']

要回复问题请先登录注册