我有一个名为“呼叫”的小班,我需要将这些呼叫存储到一个平面文件中。我创建了另一个名为“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 背景,所以我不明白为什么如果它被序列化,我不能将一个数组写入磁盘。:)