filesize()返回0?

时间:2011-09-10 06:03:56

标签: php filesize

我试图使用foreach将数组值插入到文件中..如果文件大小达到1MB(1000000byte)。该脚本创建一个新文件并将值放在...

这是我使用的代码:

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

现在的问题是函数“filesize()”总是返回0 ,,但是如果我删除它上面的代码并将echo filesize($file_name);仅放在页面中..它返回正确的值(文件大小) ),该脚本也只生成1个文件,即使它变得超过1MB,因为filesize为0,因为filesize()函数返回!。

我查看了这个问题PHP Problem : filesize() return 0 with file containing few data? 但即使我按照#1

的答案,它仍然无法正常工作

我希望你理解我的问题..对不起我的英语。

1 个答案:

答案 0 :(得分:9)

函数filesize在内部缓存 您需要在每次写入后明确使用clearstatcache

除此之外,file_put_contents的使用似乎不正确

请参阅手册以获取更多信息