在我的特定情况下,我在从1.x到2.x执行ExpressionEngine更新后出现此错误。有一个表管理站点首选项,每个字段的数据是一个序列化的PHP数组。更新后,任何序列化数组都只是说czowOiIiOw==
。谷歌搜索此字符串会带来其他非ExpressionEngine相关的网站论坛,最终用户在报告此字符串时无法登录。
有没有人知道可能导致这种情况的原因,或者您之前见过这样的事情吗?
答案 0 :(得分:4)
它是空字符串序列化的编码。
>>> 'czowOiIiOw=='.decode('base64')
's:0:"";'
不知何故,你的偏好被抹去了。
答案 1 :(得分:3)
是base64编码的。它是:
s:0:"";
答案 2 :(得分:2)
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空字符串。