file_get_contents序列化/反序列化问题
问题描述:
我有一堆多维数组序列化并保存在一个txt文件中,每行一个。 现在,我正在用file_get_contents
读取文件,但是当我用该文件的内容反序列化变量时,它只回应文件的第一行。file_get_contents序列化/反序列化问题
在调试中,文件的内容是完全收录的,只有当我反序列化只有第一个数组的变量时。我认为\n\r
存在一些问题,我在该行的末尾添加了一个新问题,因为如果我删除第一行,它会正确读取下一个,但只是第一个!
对于前面提到的\n\r
,我在\n\r
和file_put_contents($this->logFile,"\r\n",FILE_APPEND)
之后首先编写了文件中序列化的数组。它是否正确?
我该怎么办?
感谢
答
我认为你缺少的unserialize
点。每个文档:
unserialize()接受一个序列化变量并将其转换回PHP值。
(请注意使用的单)
你确实有几个选项,但:
- 使用
file
,达到每个线和单独反序列化它。 - 对文件使用
var_export
,然后将该文件视为典型的包含文件。
+0
好吧我用'文件'并通过所有的行(在这种情况下3),现在所有都打印出完美的foreach! 谢谢 – Kreker 2011-03-14 15:23:39
我不确定我是否理解了它,你序列化了一堆数组,将它们放到一个文件中,然后读取文件并尝试整个反序列化?你更好地阅读和反序列化文件中的每一行... – yent 2011-03-14 14:57:53
是的,这就是我想要做的。我知道我可以逐行读取文件并反序列化,但我只是好奇为什么反序列化函数就像这样! – Kreker 2011-03-14 15:02:12
我同意@yent,但对文件使用[var_export](http://www.php.net/manual/en/function.var-export.php)并将其当作标准对待可能更值得包含文件。 – 2011-03-14 15:02:21