如果文件超过25个,则删除旧文件

时间:2014-03-08 18:30:43

标签: php

我有一个网络摄像头,可以将图片上传到网络文件夹,我有一个脚本可以删除超过1天的所有文件,我想更改此脚本只保留25张图片,而不是删除旧图片。

<?
$days = 0;
$dir ='gallery-images/';

$nofiles = 0;

    if ($handle = opendir($dir)) {
    while (( $file = readdir($handle)) !== false ) {
        if ( $file == '.' || $file == '..' || is_dir($dir.'/'.$file) ) {
            continue;
        }

        if ((time() - filemtime($dir.'/'.$file)) > ($days * 86400)) { //86400
            $nofiles++;
            unlink($dir.'/'.$file);
            echo "Deletado -- $dir$file \r\n";
            echo "<br/>";
        }
    }
    closedir($handle);
    echo "Total files deleted: $nofiles \r\n";
}
?>

1 个答案:

答案 0 :(得分:0)

您需要创建一个包含所有文件的数组,其中键是文件名,值是修改日期。使用uasort可以按日期排序。最后一步很简单,从阵列中删除25个最新文件并删除所有剩余文件。