PHP 序列化替代项,存储需求较少


PHP serialize alternative with less storage needs

有没有一种需要更少空间的 PHP 序列化的替代方案?

问是因为我已经序列化了一个对象数组,并且我注意到大多数字节都用于保存类的名称。因此,即使没有必要,相同的字符串也会一次又一次地出现。

实现序列化很容易:

function serialize2($arr){
  result='';
  foreach($arr as $key=>$val) $result.=(is_array($val)?serialize2($val):$key.'=>'.$val)
  return result;
}

棘手的一点是基于规则的压缩。当你说"我注意到大部分字节都用于保存类的名称"时,你基本上是在说"似乎有一个规则,如何以更压缩的方式输出东西"。由于我不知道您的数据,并且您似乎没有确定有哪些规则,因此我的帮助在这一点上停止。从这里您可以尝试识别规则并将它们构建到我为您提供的序列化函数中。