首页 > php学习 > php的序列化函数
2017
01-06

php的序列化函数

PHP序列化功能是转换生成一个可存储的字符串,此字符串包含了表示$value的字节流,可以存储于任何地方。这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

string serialize(mixed $value),可处理除了resource(资源句柄)之外的任何类型。

想要将已序列化的字符串变回PHP的值,可使用unserialize()。

如何序列化成json格式呢,php 5.2以上版本的用户可以使用json_encode() 和 json_decode() 函数来实现json格式的序列化:

json_decode ( string $json [, bool $assoc = false]):

参数assoc为 TRUE 时,将返回 array 而非 object,默认为false 。

json_decode要求的字符串($json参数)比较严格,否则返回NULL:
    (1)使用UTF-8编码
    (2)不能在最后元素有逗号
    (3)不能使用单引号
    (4)不能有\r,\t和BOM头,如果有请替换
UTF-8以字节为编码单元因此不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式。字符 "Zero Width No-Break Space" 的 UTF-8 编码是 EF BB BF。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码了。
去除BOM头方法一:
chr(239) . chr(187) . chr(191)拼接成utf-8 bom头,再使用trim函数即可
    trim($info,chr(239).chr(187).chr(191))
去除BOM头方法二:
匹配是否存在bom头,存在则截掉前三位字符
    if(preg_match('/^\xEF\xBB\xBF/',$json_data)){
        $json_data = substr($info,3);
    }
最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。