2011-09-10 15 views
6

foreach parametresini kullanarak dosyaya bir dizi değeri eklemeyi deniyorum ve dosya boyutu 1 MB'a (1000000bayt) ulaştıysa. ,, filesize() 0 döndürüyor?

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

şimdi sorun her zaman 0 dönüyor fonksiyonu "() dosya boyutu" dir: komut

bu

i eskisi kodu ... yeni bir dosya oluşturmak ve içeride değeri koymak ancak yukarıdaki kodu kaldırır ve sayfadaki echo filesize($file_name); koyarsam doğru değeri (dosya boyutu) döndürürse, betik de 1 dosyadan fazla 1 dosyaya bile sahip olur, çünkü dosya boyutu 0 olarak dosyalanır() işlev dönüşü!

ben bu soruyu PHP Problem : filesize() return 0 with file containing few data? kontrol ama yine de ben .. sana benim sorunu anlamak diliyorum cevap 1.

izleyin ve benim İngilizce için üzgünüm im bile çalışmıyor.

+0

dosyayı kapatmayı ve yeniden açmayı deneyin, sonra da yazın. Arabellek nedeniyle olduğunu düşünüyorum. –

+0

'$ file_name' nerede ayarlandı? –

+0

@ Moein7tl Denedim, ama çalışmadı – Programmer4me

cevap

8

fonksiyon dosya boyutu içten
her bunun yanında

yazmak sonra açıkça clearstatcache kullanmak gerekir önbelleğe alınır, file_put_contents kullanımı

fazla bilgi

için kılavuzuna başvurun doğru gibi görünmüyor
+0

Teşekkürler, işe yarıyor. – Programmer4me

İlgili konular