2011-03-14 161 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