2011-09-10 13 views
6

मैं foreach का उपयोग कर फ़ाइल में एक सरणी मान डालने की कोशिश कर रहा हूं .. और यदि फ़ाइल का आकार 1 एमबी (1000000byte) तक बन गया। स्क्रिप्ट एक नई फ़ाइल बनाना और मूल्य के अंदर डाल दिया ...फाइलसाइज() वापसी 0?

इस

कोड मैं क्या प्रयोग किया जाता है:

foreach($array as $code){ 

if(filesize($file_name) < '1000000'){ 
    $update_file = file_get_contents($file_name); 
    file_put_contents($file_name,$update_file.$code); 
}else{ 
    $open = fopen($file_name.rand('99999'),'w'); 
    file_put_contents($file_name,$code); 

    } 
echo filesize($file_name); 
} 

अब समस्या समारोह "फ़ाइल आकार()" हमेशा 0 लौटा रहा है है ,, लेकिन अगर मैं इसके ऊपर कोड हटा देता हूं और केवल पेज में echo filesize($file_name); डालता हूं .. यह सही मान (फ़ाइल का आकार) देता है, स्क्रिप्ट भी केवल 1 फ़ाइल बनाती है, यह 1 एमबी से भी अधिक हो गई है क्योंकि फाइलसाइज 0 फ़ाइल के रूप में है() समारोह वापसी!

मैं इस सवाल का PHP Problem : filesize() return 0 with file containing few data? जाँच की लेकिन यह अभी भी भी काम नहीं कर रहा मैं 1

पालन जवाब # काश कि तुम मेरी समस्या को समझने .. और मेरे अंग्रेजी के लिए खेद im।

+0

फ़ाइल को बंद करने और फिर से खोलने का प्रयास करें, फिर इसमें लिखें। मुझे लगता है कि यह बफर की वजह से है। –

+0

'$ file_name' सेट कहां है? –

+0

@ मोइन 7tl मैंने कोशिश की, लेकिन काम नहीं किया – Programmer4me

उत्तर

8

समारोह फ़ाइल आकार आंतरिक
आप स्पष्ट रूप से clearstatcache उपयोग करने के लिए प्रत्येक लिखने के बाद

इस बगल में

जरूरत कैश किया गया है, file_put_contents के उपयोग सही

अधिक जानकारी

के लिए मैनुअल को देखें होना प्रतीत नहीं होता है
+0

धन्यवाद, यह काम करता है। – Programmer4me

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