我尝试使用 PHP.js 的序列化包序列化对象数据以通过 php 保存到文件中。
Chrome:很好 FF:很好 IE9:在兼容模式下很好 IE9(本质上是 IE7):不好。
来自控制台的错误:
SCRIPT5022: Exception thrown and not caught
serialize.min.js, line 144 character 55
序列化后的数据基本上是这样的:
a:180:{s:40:"Aleksis Kiven tie 15<br>04200 Kerava<br>";a:2:{i:0;d:60.4012598;i:1;d:25.09659910000005;}
未序列化:
{"Aleksis Kiven tie 15<br>04200 Kerava<br>": [60.4012598, 25.09659910000005]}
处理缓存的 Javascript 如下所示:
function saveCache(data) {
sdata = serialize(data);
$.ajax({
type: 'POST',
url: 'http://localhost/foobar/files/coordinates.php',
data: {
'do': 'write',
'data': sdata
}
});
}
我正在按地址将地理编码结果缓存到文本文件中。
如果我没有道理,请多问。
主要编辑:我更正了所指出的示例。同样重要的是问题确实发生了变化。这实际上不是 serialize() 的问题,而是 unserialize() 的问题。