簡體   English   中英

PHP如何序列化對象數組?

[英]php how to serialize array of objects?

我有一個名為“ Call”的小類,我需要將這些調用存儲到一個平面文件中。 我制作了另一個名為“ CallStorage”的類,其中包含一個將這些調用放入其中的數組。

我的問題是我想將此陣列存儲到磁盤,以便以后可以讀回並從該陣列獲取調用。

我試圖使用serialize()和unserialize()來實現這一點,但是它們似乎有些奇怪,並且部分信息會丟失。

這就是我在做什么:

//write array to disk
$filename = $path . 'calls-' . $today;
$serialized = serialize($this->array);
$fp = fopen($filename, 'a');
fwrite($fp, $serialized);
fclose($fp);

//read array from serialized file

$filename = $path . 'calls-' . $today;
if (file_exists($filename)) {
    $handle = fopen($filename, 'r');
    $contents = fread($handle, filesize($filename));
    fclose($handle);
    $unserialized = unserialize($contents);
    $this->setArray($unserialized);
}

有人可以看到我做錯了什么嗎? 我也嘗試過序列化和編寫包含純字符串的數組。 我也沒有設法使它正常工作。我有Java背景,所以我看不出為什么如果不能序列化就不能只將數組寫入磁盤。 :)

首先,使用簡寫形式:

file_put_contents($filepath,serialize($var));

$var=unserialize(file_get_contents($filepath));

然后在每個階段輸出/調試以查找問題所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM