can';t取消序列化-PHP7.1.22
我使用PHP core serialize序列化关联数组can';t取消序列化-PHP7.1.22,php,string,serialization,Php,String,Serialization,我使用PHP core serialize序列化关联数组 $additional_email = serialize($customer->getData('addtionalemail')); 然后将该值保存到Mysql数据库中 s:209:"a:1:{i:0;a:1:{i:0;a:5:{s:16:"additional_email";s:13:"test@test.com";s:9:"record_id";s:1:"0";s:26:"apply_to-prepared-for-sen
$additional_email = serialize($customer->getData('addtionalemail'));
然后将该值保存到Mysql数据库中
s:209:"a:1:{i:0;a:1:{i:0;a:5:{s:16:"additional_email";s:13:"test@test.com";s:9:"record_id";s:1:"0";s:26:"apply_to-prepared-for-send";a:1:{i:0;s:1:"0";}s:8:"apply_to";a:1:{i:0;s:1:"0";}s:10:"initialize";s:4:"true";}}}";
当我取消序列化上述值时,它不起作用。在序列化和取消序列化之前,我使用了诸如base_64_编码和解码之类的解决方案,但这并没有解决问题,也使用了preg_匹配解决方案,但运气不佳
我使用,这也将无法取消序列化上述字符串。序列化的值有问题,有人能给我指出正确的方向吗?看起来您不知何故将值序列化了两次。运行两次
unserialize
将撤消以下操作:
print_r(unserialize(unserialize('s:209:"a:1:{i:0;a:1:{i:0;a:5:{s:16:"additional_email";s:13:"test@test.com";s:9:"record_id";s:1:"0";s:26:"apply_to-prepared-for-send";a:1:{i:0;s:1:"0";}s:8:"apply_to";a:1:{i:0;s:1:"0";}s:10:"initialize";s:4:"true";}}}";')));
输出:
Array (
[0] => Array (
[0] => Array (
[additional_email] => test@test.com
[record_id] => 0
[apply_to-prepared-for-send] => Array (
[0] => 0
)
[apply_to] => Array (
[0] => 0
)
[initialize] => true
)
)
)
您在
$customer->getData('addationalemail')
中有什么内容?你能给我们看看吗?