实际上iam通过php在我创建的导出文件夹中转储数据库文件。 这里我想在导出文件夹类型的FIFO方式中只保留最新的十个sql文件。 我不想太过填充文件夹,并希望限制它太十个最新文件。 怎么做?
答案 0 :(得分:0)
首先使用glob
获取所有文件,然后确定目录中是否有十个或更多文件。之后,检查每个mtime
(修改时间)并删除最旧的。
$file_pattern = '/path/to/directory/and/files/*';
$filenames = glob( $file_pattern );
if ( count( $filenames ) > 9 ) {
// While there are ten or more files.
while ( count( glob( $file_pattern ) ) > 9 ) {
$oldest_file = null;
// Grab the unix timestamp of *now*, as filemtime returns a unix timestamp too.
$current_oldest_time = time();
foreach ( $filenames as $filename ) {
$filetime = filemtime( $filename );
if ( $filetime < $current_oldest_time ) {
$current_oldest = $filetime;
$oldest_file = $filename;
}
}
// After the foreach you'll have the filename of the oldest file (remove it),:
unlink( $oldest_file );
// Or null if something went wrong (break out of the loop):
break;
}
}
答案 1 :(得分:-1)
您可以使用取消关联功能删除文件:http://php.net/manual/de/function.unlink.php
您只需找到目录中最旧的文件