PHP删除除以下内容之外的所有文件

时间:2013-12-17 13:39:32

标签: php

我有这个脚本工作删除所有文件,但只保留选定的文件,如何更改它以便在.exe文件中捕获任何文件名?

$leave_files = array(''.$filename.'.exe', ''.$filename.'.nfo', ''.$filename.'.sfv');
foreach( glob("$foldername/*") as $file ) {
    if( !in_array(basename($file), $leave_files) ) {
            unlink($file);
        }

对于.exe文件我希望它捕获任何文件名

由于

3 个答案:

答案 0 :(得分:2)

$leave_files = array('' . $filename . '.exe', '' . $filename . '.nfo', '' . $filename . '.sfv');

foreach (glob("$foldername/*") as $file) {
    if (!in_array(basename($file), $leave_files)) {
        if (substr($file, -4) == ".exe") {
            continue;
        } else {
            unlink($file);
        }
    }
}

答案 1 :(得分:0)

您可以检查文件名的最后4个符号是否为“.exe”,然后不要删除它们。 (或删除它们,取决于你的意思)

  

if(substr($ filename,-4)==“。exe”)

答案 2 :(得分:0)

检查扩展程序:

if(!in_array(basename($file), $leave_files) && pathinfo($file, PATHINFO_EXTENSION) != 'exe') {

或者在glob()

中排除它们
foreach(array_diff(glob("$foldername/*"), glob("$foldername/*.exe") as $file) {