2010-04-21 10 views
5

मेरे पास 'कॉल' नामक छोटी कक्षा है और मुझे इन कॉल को एक फ्लैट फ़ाइल में स्टोर करने की आवश्यकता है। मैंने 'कॉलस्टोरेज' नामक एक और कक्षा बनाई है जिसमें एक सरणी है जहां मैंने इन कॉल को रखा है।php ऑब्जेक्ट्स की सरणी को क्रमबद्ध करने के लिए कैसे करें?

मेरी समस्या यह है कि मैं इस सरणी को डिस्क पर संग्रहीत करना चाहता हूं ताकि मैं इसे बाद में पढ़ सकूं और उस सरणी से कॉल प्राप्त कर सकूं।

मैंने 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); 
} 

कोई देख सकता हूँ मैं गलत क्या कर रहा है, या क्या। मैंने सादे स्ट्रिंग्स वाले सरणी को क्रमबद्ध करने और लिखने का भी प्रयास किया है। मैंने यह काम करने के लिए प्रबंधन नहीं किया था .. मेरे पास जावा पृष्ठभूमि है इसलिए मैं नहीं देख सकता कि मैं डिस्क पर सरणी क्यों नहीं लिख सकता था अगर यह धारावाहिक है। जहां समस्या है खोजने के लिए प्रत्येक चरण में

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

और

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

और फिर उत्पादन/डिबग: :)

उत्तर

6

सबसे पहले, आशुलिपि रूपों का उपयोग करें।

+0

ऐसा लगता है कि समस्या मेरे पढ़ने और लेखन कार्यों में थी। तो file_put_contents() और file_get_contents() ने समस्या हल की है और अब जैसा कि मैंने अपेक्षा की है serializing काम करता है! धन्यवाद! :) – hequ

संबंधित मुद्दे