У меня есть небольшой класс под названием «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-фон, поэтому я просто не понимаю, почему я не могу просто записать массив на диск, если он сериализован. :)