“czowOiIiOw ==”有什么意义

时间:2011-05-24 17:00:44

标签: php serialization expressionengine

在我的特定情况下,我在从1.x到2.x执行ExpressionEngine更新后出现此错误。有一个表管理站点首选项,每个字段的数据是一个序列化的PHP数组。更新后,任何序列化数组都只是说czowOiIiOw==。谷歌搜索此字符串会带来其他非ExpressionEngine相关的网站论坛,最终用户在报告此字符串时无法登录。

有没有人知道可能导致这种情况的原因,或者您之前见过这样的事情吗?

4 个答案:

答案 0 :(得分:4)

它是空字符串序列化的编码。

>>> 'czowOiIiOw=='.decode('base64')
's:0:"";'

不知何故,你的偏好被抹去了。

答案 1 :(得分:3)

是base64编码的。它是:

s:0:"";

答案 2 :(得分:2)

Decoding it as base64它变为:

s:0:"";

如您所见,如果执行以下行,则为序列化空字符串

echo serialize(""); // Outputs s:0:"";
echo base64_encode(serialize("")); // Outputs czowOiIiOw==

有关序列化规范的更多信息,请参阅this generous commenter's work,特别是字符串:

Anatomy of a serialize()'ed value:  
...  
  String  
  s:size:value;  

答案 3 :(得分:2)

它是s:0:""的base64编码版本,它是一个序列化的PHP空字符串。