php - 文件大小()返回0?

标签 php filesize

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

这是我使用的代码:

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,因为文件大小为 0,因为 filesize() 函数返回!。

我检查了这个问题PHP Problem : filesize() return 0 with file containing few data? 但即使我遵循答案#1,它仍然无法正常工作

我希望你能理解我的问题..我很抱歉我的英语不好。

最佳答案

函数文件大小在内部缓存
您需要在每次写入后显式使用 clearstatcache

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

请引用the manual了解更多信息

关于php - 文件大小()返回0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7369962/

相关文章:

java - 计算文件名字符并限制文件大小以显示 Joptionpane

java - 使用 Xuggler 解码大型音频文件

r - 如何在打开前检查文件大小?

php - 如何在mysql中获得加仑、毫升和升的总和

php mysql联合查询具有不同的uid

php - Laravel 5 重置密码通知不会发送

php - 安装 SOAP 扩展 PHP 配置 (AWS)

php - imagecreatefrompng 错误 - 如何检测和处理?

c# - 在 C# 中获取文件大小为十六进制

c# - 计算字符串在不将其保存到磁盘的情况下占用的磁盘空间