php的序列化函数
qingheluo2017-01-06清河洛439
PHP序列化功能是转换生成一个可存储的字符串,此字符串包含了表示$value的字节流,可以存储于任何地方这有利于存储或传递 PHP 的值,同时不丢失其类型和结构serialize(mixed $value):将除了resource(资源句柄)之外的任何类型转换为序列化字符串unserialize($str) :将已序列化的字符串变回PHP的值如何序列化成json格式呢json_encode(mixed $value [, int $options = 0 [, int $depth = 512 ]])把除了resource类型之外的数据类型编码为json格式,所有字符串数据的编码必须是U...
PHP序列化功能是转换生成一个可存储的字符串,此字符串包含了表示$value的字节流,可以存储于任何地方
这有利于存储或传递 PHP 的值,同时不丢失其类型和结构
serialize(mixed $value):将除了resource(资源句柄)之外的任何类型转换为序列化字符串
unserialize($str) :将已序列化的字符串变回PHP的值
如何序列化成json格式呢
json_encode(mixed $value [, int $options = 0 [, int $depth = 512 ]])
把除了resource类型之外的数据类型编码为json格式,所有字符串数据的编码必须是UTF-8。 depth:设置最大递归深度。必须大于0。 options JSON_HEX_TAG:1,所有的<和>转换成\u003C和\u003E JSON_HEX_AMP:2,所有的&转换成\u0026 JSON_HEX_APOS:4,所有的单引号(')转换成 \u0027 JSON_HEX_QUOT:8,所有的双引号(")转换成\u0022 JSON_FORCE_OBJECT:16,使一个非关联数组输出一个类(Object)而非数组。 在数组为空而接受者需要一个类(Object)的时候尤其有用。 JSON_NUMERIC_CHECK:32,将所有数字字符串编码成数字(numbers) JSON_UNESCAPED_SLASHES:64,不要编码反斜杠(/) JSON_PRETTY_PRINT:128,用空白字符格式化返回的数据 JSON_UNESCAPED_UNICODE:256,以字面编码多字节Unicode字符(默认是编码成 \uXXXX)
json_decode(string $json [,bool $assoc=FALSE [, int $depth = 512 [, int $options = 0 ]]])
把json字符串解析为php数据类型 assoc为TRUE时,将返回array而非object depth:指定递归深度。 options JSON_OBJECT_AS_ARRAY:1,将json解析为数组而非object JSON_BIGINT_AS_STRING:2,将大数字编码成原始字符原来的值 json_decode要求的字符串($json参数)比较严格,否则返回NULL: (1)使用UTF-8编码 (2)不能在最后元素有逗号 (3)不能使用单引号 (4)不能有\r,\t和BOM头,如果有请替换 去除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); }