PHP.js の serialize package を使って、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() の問題です。