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

PHP删除除以下文件之外的所有文件,php,Php,我已经让这个脚本工作删除所有文件,但只保留选定的文件,我如何才能改变它,使其在.exe文件上捕获任何文件名 $leave_files = array(''.$filename.'.exe', ''.$filename.'.nfo', ''.$filename.'.sfv'); foreach( glob("$foldername/*") as $file ) { if( !in_array(basename($file), $leave_files) ) { un

我已经让这个脚本工作删除所有文件,但只保留选定的文件,我如何才能改变它,使其在.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文件,我希望它捕获任何文件名


谢谢

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

如果(substr($filename,-4)=“.exe”)

检查扩展名:

if(!in_array(basename($file), $leave_files) && pathinfo($file, PATHINFO_EXTENSION) != 'exe') {
或者在
glob()
中排除它们:


你想让它删除除数组中列出的文件以外的所有文件,而不是任何.exe文件吗?不,对不起,我想让它保留$filename.nfo、$filename.sfv和ANYNAME.exeOK,这就是我的回答。我不再需要特定的.exe,只是重新阅读我写的内容没有完全意义。我只想保留ANYTHING.exe,而不是删除。对不起,这只适用于ANYTHING.exe。我忘了从脚本中删除“special”。if(substr($file,-4)=“.exe”){be$filename?它当前不工作。这将在我的脚本中放在哪里?它们将替换现有的
if
或现有的
foreach
。以对您最有意义的为准。
if(!in_array(basename($file), $leave_files) && pathinfo($file, PATHINFO_EXTENSION) != 'exe') {
foreach(array_diff(glob("$foldername/*"), glob("$foldername/*.exe") as $file) {