Frage

Ich habe kleine Klasse namens ‚Call‘ und ich brauche diese Anrufe in eine flache Datei zu speichern. Ich habe eine andere Klasse namens ‚CallStorage‘ gemacht, die ein Array enthält, wo ich diese Anrufe setzen in.

Mein Problem ist, dass ich dieses Array auf der Festplatte speichern mag, damit ich später wieder lesen kann und die Anrufe von diesem Array erhalten.

Ich habe versucht, dies mit serialize zu erreichen () und unserialize (), aber diese scheint irgendwie seltsam und einen Teil der Informationen zu handeln, geht verloren.

Das ist, was ich tue:

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

Kann jemand sehen, was ich falsch mache, oder was. Ich habe auch serialisiert und Schreib Arrays versucht, die Plain-Strings enthält. Ich habe es nicht geschafft zu bekommen, dass entweder arbeiten .. ich ein Java-Hintergrund haben, so kann ich einfach nicht sehen, warum ich konnte nicht einfach ein Array auf die Festplatte schreiben, wenn es serialisiert wird. :)

War es hilfreich?

Lösung

Zuerst benutzen Sie die Kurzformen:

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

und

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

Und dann Ausgabe / debug in jeder Phase zu finden, wo das Problem ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top