PHP 删除文件的第一行,直到达到阈值



我想将我的日志文件修剪到 7KB。 但是修剪只运行一次,文件大小也不会更新。

这是代码:

$thresholdKB = "7";
$files = glob('logs/*.{log}', GLOB_BRACE);
foreach($files as $file) {
$filesizeKB = filesize("$file") / 1024;
if ($filesizeKB > $thresholdKB){
while ($filesizeKB > $thresholdKB) {
$filesizeKB = filesize("$file") / 1024;
$lines = file("$file"); 
unset($lines[0]); 
$fp = fopen("$file", 'w'); 
fwrite($fp, implode('', $lines)); 
fclose($fp);
}
}
}

缓存filesize的结果。您需要在更新文件后调用clearstatcache()

https://www.php.net/manual/en/function.clearstatcache.php

相关内容

最新更新