php:unserialize return false但在单个php文件中:return array

php:unserialize return false但在单个php文件中:return array,php,Php,我真的不知道为什么 我有一个sql查询,它得到一个serlialized字符串。 然后我想取消序列化,返回值为bool(false) 因此我转储了字符串并将其放入外部文件: $str = 'a:1:{i:4;s:13:"notifications";}'; print_r(unserialize($str)); 神奇的是,一切都在运作! 它实际上是同一根弦 如果有人对此有想法的话。非常感谢你的帮助 编辑尝试了更多内容: $DB->query(" SELECT xxxxxx

我真的不知道为什么

我有一个sql查询,它得到一个serlialized字符串。 然后我想取消序列化,返回值为bool(false)

因此我转储了字符串并将其放入外部文件:

$str = 'a:1:{i:4;s:13:"notifications";}';
print_r(unserialize($str));
神奇的是,一切都在运作! 它实际上是同一根弦

如果有人对此有想法的话。非常感谢你的帮助

编辑尝试了更多内容:

$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";}" 
或者字符串是31而不是41

因此,解决方案是:

html_entity_decode($title, ENT_QUOTES); 
好,如图所示:

string(41) "a:1:{i:0;s:13:"notifications";}" 
或者字符串是31而不是41

因此,解决方案是:

html_entity_decode($title, ENT_QUOTES); 
好,如图所示:

string(41) "a:1:{i:0;s:13:"notifications";}" 
或者字符串是31而不是41

因此,解决方案是:

html_entity_decode($title, ENT_QUOTES); 
好,如图所示:

string(41) "a:1:{i:0;s:13:"notifications";}" 
或者字符串是31而不是41

因此,解决方案是:

html_entity_decode($title, ENT_QUOTES); 


在取消序列化之前,您可以
var_dump()
查询返回的字符串吗?没问题,请查看编辑器您还可以vardump
db_string($Paranoia)
?然后,您还可以检查具有输出的页面的源(
ctrl-u
)以确保没有编码问题吗?是的,
db\u string
函数执行什么功能?在取消序列化之前,您能
var\u dump()
查询返回的字符串吗?没问题,查看编辑是否也可以查看
db\u字符串($Paranoia)
的结果?然后,您还可以检查具有输出的页面的源(
ctrl-u
)以确保没有编码问题吗?是的,
db\u string
函数执行什么功能?在取消序列化之前,您能
var\u dump()
查询返回的字符串吗?没问题,查看编辑是否也可以查看
db\u字符串($Paranoia)
的结果?然后,您还可以检查具有输出的页面的源(
ctrl-u
)以确保没有编码问题吗?是的,
db\u string
函数执行什么功能?在取消序列化之前,您能
var\u dump()
查询返回的字符串吗?没问题,查看编辑是否也可以查看
db\u字符串($Paranoia)
的结果?然后,您还可以检查具有输出的页面的源(
ctrl-u
),以确保没有编码问题吗?是的,
db\u string
函数执行什么操作?如果您不将普通数据存储在数据库中,则会发生这种情况。为什么要对HTML特殊字符进行编码?
db\u string
不是标准的函数/方法。它能做什么?我的错!它为db插入准备字符串,所以基本上是接受引号的!)插入数据库时不需要转义HTML特殊字符,仅在打印到HTML时才需要转义。如果不在数据库中存储普通数据,则会发生这种情况。为什么要对HTML特殊字符进行编码?
db\u string
不是标准的函数/方法。它能做什么?我的错!它为db插入准备字符串,所以基本上是接受引号的!)插入数据库时不需要转义HTML特殊字符,仅在打印到HTML时才需要转义。如果不在数据库中存储普通数据,则会发生这种情况。为什么要对HTML特殊字符进行编码?
db\u string
不是标准的函数/方法。它能做什么?我的错!它为db插入准备字符串,所以基本上是接受引号的!)插入数据库时不需要转义HTML特殊字符,仅在打印到HTML时才需要转义。如果不在数据库中存储普通数据,则会发生这种情况。为什么要对HTML特殊字符进行编码?
db\u string
不是标准的函数/方法。它能做什么?我的错!它为db插入准备字符串,所以基本上是接受引号的!)插入数据库时不需要转义HTML特殊字符,只在打印到HTML时才转义。