2011-03-14 224 views
0

我有一堆多维数组序列化并保存在一个txt文件中,每行一个。 现在,我正在用file_get_contents读取文件,但是当我用该文件的内容反序列化变量时,它只回应文件的第一行。file_get_contents序列化/反序列化问题

在调试中,文件的内容是完全收录的,只有当我反序列化只有第一个数组的变量时。我认为\n\r存在一些问题,我在该行的末尾添加了一个新问题,因为如果我删除第一行,它会正确读取下一个,但只是第一个!

对于前面提到的\n\r,我在\n\rfile_put_contents($this->logFile,"\r\n",FILE_APPEND)之后首先编写了文件中序列化的数组。它是否正确?

我该怎么办?

感谢

+3

我不确定我是否理解了它,你序列化了一堆数组,将它们放到一个文件中,然后读取文件并尝试整个反序列化?你更好地阅读和反序列化文件中的每一行... – yent 2011-03-14 14:57:53

+0

是的,这就是我想要做的。我知道我可以逐行读取文件并反序列化,但我只是好奇为什么反序列化函数就像这样! – Kreker 2011-03-14 15:02:12

+0

我同意@yent,但对文件使用[var_export](http://www.php.net/manual/en/function.var-export.php)并将其当作标准对待可能更值得包含文件。 – 2011-03-14 15:02:21

回答

4

我认为你缺少的unserialize点。每个文档:

unserialize()接受一个序列化变量并将其转换回PHP值。

(请注意使用的

你确实有几个选项,但:

  • 使用file,达到每个线和单独反序列化它。
  • 对文件使用var_export,然后将该文件视为典型的包含文件。
+0

好吧我用'文件'并通过所有的行(在这种情况下3),现在所有都打印出完美的foreach! 谢谢 – Kreker 2011-03-14 15:23:39