我试图使用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
的答案,它仍然无法正常工作我希望你理解我的问题..对不起我的英语。
答案 0 :(得分:9)
函数filesize在内部缓存
您需要在每次写入后明确使用clearstatcache
除此之外,file_put_contents的使用似乎不正确
请参阅手册以获取更多信息