2010-04-21 23 views
5

'Call' adında küçük bir sınıfım var ve bu çağrıları düz bir dosyaya kaydetmem gerekiyor. Bu çağrıları koyduğum bir dizi içeren 'CallStorage' adında bir başka sınıf yaptım.php Nesne dizisini serileştirmek nasıl?

Sorunum bu yüzden daha sonra tekrar okumak ve bu diziden çağrıları alabilir diske bu diziyi saklamak istiyorum olmasıdır.

Bunu kullanarak serialize() ve unserialize() elde etmek için denedim ama bunlar nedense tuhaf davranmaya görünüyor ve bilgilerin bir kısmı kaybolur.

Bu benim yaptığım budur:

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

birisi yanlış yapıyor, ya da ne anladın Can. Düz dizeleri içeren dizileri seri hale getirmeye ve yazmaya çalıştım. Ben de çalışmayı başaramadım .. Java arka planım var, bu yüzden neden serileştirilmişse diske bir dizi yazamadığımı anlayamıyorum. Sorun nerede olduğunu bulmak için her bir aşamada

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

ve

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

ve

çıkış/debug: :)

cevap

6

İlk olarak, kestirme formları kullanın.

+0

Sorun, okuma ve yazma işlevlerimde olduğu gibi görünüyor. Yani file_put_contents() ve file_get_contents() sorunu çözdü ve şimdi serileştirme beklediğim gibi çalışıyor! Teşekkürler! :) – hequ

İlgili konular