0

例如,我有字符串

a:1:{i:0;a:3:{s:4:"name";s:56:"Song → Black Meen : “So Clean (feat. Dullaah Jin)”";s:4:"file";s:98:"http://localhost/peace.worldwide/wp-content/uploads/2013/05/03-So-Clean-feat.-Dullaah-Jin.mp3";s:9:"condition";s:3:"all";}}

我想反序列化它。

当我将它传递给 unserialize() 时,结果什么都没有(例如,print_r(unserialize(/*I put the string here*/))打印绝对没有)。

为什么会发生?

4

2 回答 2

0

我发现导致数据库中的序列化字符串混乱的问题。我已经搜索/替换了基于将 str8wayent.com 替换为 localhost 的数据,这显然会更改序列化值,但不会更改数据库中的长度字段。

我发现这个很好的脚本来固定 sql 转储文件中的序列化长度字段: github.com/Blogestudio/Fix-Serialization

于 2013-06-09T21:13:40.710 回答
0

在 error_reporting 中打开通知:

PHP Notice:  unserialize(): Error at offset 204 of 229 bytes in php shell code on line 1

围绕这些偏移量,您有一个

s:98:"http://localhost/peace.worldwide/wp-content/uploads/2013/05/03-So-Clean-feat.-Dullaah-Jin.mp3"

这表示应该有一个长度为 98 的字符串,但该字符串只有 93 个字节长。

于 2013-06-09T11:08:38.490 回答