我有一个叫“呼叫”的小型类,我需要将这些呼叫存储到平面文件中。我已经完成了另一个名为“ callstorage”的类,其中包含一个数组,我将这些调用放入其中。

我的问题是我想将此数组存储到磁盘上,以便稍后可以将其回复并从该数组中获取电话。

我尝试使用serialize()和Unerialize()来实现此目标,但是这些似乎以某种方式行事了,并且部分信息丢失了。

这就是我正在做的:

//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);
}

有人可以看到我在做错什么,或者什么。我还尝试序列化和编写包含普通字符串的数组。我也没有设法使该工作。 :)

有帮助吗?

解决方案

首先,使用速记表格:

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

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

然后在每个阶段输出/调试以查找问题所在。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top