php unserialize retun false 反序列化处理
当数据是gbk
unserialize(gbk_to_utf8($value["cphelp"]));
当反序列化时会出现retun false
使用处理过单双引号,过滤\r的mb_unserialize方法就能成功反序列化了。
function
mb_unserialize(
$serial_str
) {
$serial_str
= preg_replace(
'!s:(\d+):"(.*?)";!se'
,
"'s:'.strlen('$2').':\"$2\";'"
,
$serial_str
);
$serial_str
=
str_replace
(
"\r"
,
""
,
$serial_str
);
return
unserialize(
$serial_str
);
}