在写 log 时,设定文件大小不能超过 2 M,但在循环 5000 次时,文件大小会超出设定值。
if (filesize($log) <= 1024 * 1024 * 2) {
return $log;
}
这是因为在当前进程中,PHP 会缓存 filesize() 函数的返回信息,在下一次运行时重新读取。所以在代码运行时,即使文件不断被写入,体积增大,但 filesize() 仍会返回第一次获取的文件大小。
解决方法
使用 clearstatcache() — 清除文件状态缓存
了解 王坤的博客 的更多信息
订阅后即可通过电子邮件收到最新文章。