У меня есть PHP-скрипт (называемый клиентом), который получает запрос от PHP-скрипта (называемого сервером) на другом сервере. Сервер упорядочивает эти данные и отправляет его клиенту:Unserialize() не работает
stdClass Object (
[version] => 0.3
[date] => 2010-04-10
[package] => http://my.site/test-plugin-update/test-plugin-update.zip
[slug] => test-plugin-update
[new_version] => 0.3
)
клиент берет и unserializes это так: $response = unserialize($raw_response['body'])
Но $response
пуста!
Если я делаю это: var_dump(unserialize($raw_response['body']))
я получаю это: bool(false)
Если я делаю это: print_r($raw_response['body'])
я получаю это:
O:8:"stdClass":5:{s:7:"version";s:3:"0.3";s:4:"date";s:10:"2010-04-10";s:7:"package";s:56:"http://my.site/test-plugin-update/test-plugin-update.zip";s:4:"slug";s:18:"test-plugin-update";s:11:"new_version";s:3:"0.3";}
Если я вручную вставить что внутри в unserialize()
вызова, я получаю красивый объект, как это:
stdClass Object (
[version] => 0.3
[date] => 2010-04-10
[package] => http://my.site/test-plugin-update/test-plugin-update.zip
[slug] => test-plugin-update
[new_version] => 0.3
)
Любая идея, почему я получаю такого рода поведение, или то, что я могу сделать, чтобы unserial Измерить строку программно?
Что вы получаете от 'var_dump (serialize ($ raw_response ['body']))'? – melpomene
@melpomene Вот что я получаю - сериализованная строка внутри сериализованной строки: 's: 217:" O: 8: "stdClass": 5: {s: 7: "version"; s: 3: "0.3"; с: 4: "дата"; s: 10: "2010-04-10"; s: 7: "пакет"; s: 56: "http://my.site/test-plugin-update/test-plugin -update.zip "; s: 4:" пробкового "; s: 18:" тест-плагин-обновление "; s: 11:" NEW_VERSION "; s: 3:" 0,3 ";}"; ' –