可能重复:
An efficient way to save an Array and its Keys to a database
是否有可能返回二进制的serialize()等效项?
将数据保存为字符串在两个方面效率都很低:性能和内存方式效率低下。是否有一个函数可以从RAM返回纯数据,并因此有一个函数来读回它?
答案 0 :(得分:2)
如果您要做的只是获得序列化字符串的更紧凑的表示形式,例如,使用比普通serialize()
更少空间的字符串,您可以使用gzdeflate()
压缩明文 - 文字输出:
$data = gzdeflate(serialize($some_array));
// Store in database...
// To restore the array: Get $data from the database, then:
$array = unserialize(gzinflate($data));
您可以使用gzcompress()
/ gzdeflate()
代替gzinflate()
/ gzuncompress()
,但这些字符串会产生略大的字符串,因为它们包含其他元数据,例如校验和。< / p>