Я пытаюсь сериализовать данные объекта для сохранения в файл с помощью php, используя сериализованный пакет PHP.js.Ошибка PHP.js unserialize() IE7
Хром: штраф 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().
У вас есть пример, который действительно работает в PHP? Ваш пример сериализованных данных не работает с unserialize() в самом PHP, и ваш несертифицированный пример недействителен JavaScript, поэтому я не могу его проверить. Было зафиксировано два года назад или около того, чтобы исправить проблему IE, поэтому также убедитесь, что вы используете последний код. –
Извините, но я не знаю, как это поможет. Мои серийные и неэтериализованные примеры не являются действительными, на самом деле это не проблема. Дело в том, что все работает, за исключением IE7, что означает, что в IE7 есть ошибка или нет-функция, которая либо может, либо не может быть обойдена. Я надеялся, что кто-нибудь может сказать мне, что то, что я пытаюсь сделать, выполнимо, в первую очередь, в IE7. В других браузерах он работает нормально. –
Это поможет, потому что мы можем фактически подтвердить и отладить его сами. –