سؤال

لدي فئة صغيرة تسمى "الاتصال" وأحتاج إلى تخزين هذه المكالمات في ملف مسطح. لقد صنعت فصلًا آخر يسمى "Callstorage" يحتوي على صفيف حيث قمت بإجراء هذه المكالمات.

مشكلتي هي أنني أرغب في تخزين هذه المجموعة على القرص حتى أتمكن من قراءتها لاحقًا والحصول على المكالمات من تلك الصفيف.

لقد حاولت تحقيق ذلك باستخدام Serialize () و donialize () ولكن يبدو أن هذه تعمل بشكل غريب ويفقد جزءًا من المعلومات.

هذا ما أفعله:

//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 ، لذا لا يمكنني رؤية سبب عدم تمكني من كتابة صفيف إلى القرص إذا تم تسلسله. قون

هل كانت مفيدة؟

المحلول

أولاً ، استخدم أشكال الاختزال:

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

و

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

ثم الإخراج/التصحيح في كل مرحلة للعثور على مكان المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top