我真的不知道为什么。
我有一个sql查询,它获得了一个serlialized字符串。 然后我想反序列化它,返回是bool(false)!
所以我把字符串转储并放在外部文件中:
$str = 'a:1:{i:4;s:13:"notifications";}';
print_r(unserialize($str));
神奇的是,每件事都有效! 它实际上是相同的字符串。
如果有人对此有所了解。非常感谢您的帮助!
EDIT尝试了更多的东西:
$DB->query("
SELECT xxxxxx
FROM xxxxxx
WHERE ID = $xxxx");
$Paranoia = $DB->next_record()[0];
$arr = array(0=>'test');
$Paranoia2 = serialize($arr);
var_dump($Paranoia);
echo '<br />';
var_dump($Paranoia2);
echo '<br />';
var_dump(unserialize(db_string($Paranoia)));
echo '<br />';
var_dump(unserialize($Paranoia2));
返回:
string(41) "a:1:{i:0;s:13:"notifications";}"
string(21) "a:1:{i:0;s:4:"test";}"
bool(false)
array(1) { [0]=> string(4) "test" }
答案 0 :(得分:1)
好的,如下所示:
string(41) "a:1:{i:0;s:13:"notifications";}"
或字符串是31而不是41 ......
SOLUTION FOUND - Same strings, but var_dump() says one is 5 characters longer
所以解决方案:
html_entity_decode($title, ENT_QUOTES);