我正在使用以下内容在php中序列化变量
$sum=30;
$a = serialize($sum);
file_put_contents('store', $a);
在另一个页面中,我无法通过反序列化函数来获取变量。在我的本地 服务器,它工作正常。但是当我转移到实时服务器时,我无法获取未序列化的变量。我正在使用以下内容进行反序列化,
$s = file_get_contents('store');
$a = unserialize($s);
问题出在哪里?
一般情况是:
- 文件的访问权限无效
store
,因此实时服务器无法从中读取数据。 - 服务器上的不同序列化机制。您使用的是
igbinary
扩展还是suhoshin
扩展?它们可以影响序列化/取消序列化过程。 - PHP的错误版本。例如,从 5.4.6 到 5.4.11 的 PHP 版本有很多序列化损坏的错误。
- 最后一种情况是文件的路径无效,请通过检查仔细检查该文件是否存在且可读
is_readable('store');