使用regex和array_diff()来排除具有给定扩展名的文件


use regex with array_diff() to exclude files with given extension

我回显一个目录的内容,不包括像这样的一些文件:

$exclude_list = array(".", "..", "index.php",".htaccess");
$scanned_directory = array_diff(scandir($dir), $exclude_list);   

我想将扩展名为.meta.js的目录中的所有文件添加到排除列表中。我可以用正则表达式来做吗,或者我必须循环它们并将它们单独添加到数组中,或者有其他方法吗?

使用preg_grep和正则表达式将适合过滤您的列表。

 preg_grep("/^('.|'.'.|index'.php|'.htaccess)$|'.meta'.js$/",
     $scanned_dirs, PREG_GREP_INVERT)

这包括您现有的排除,以及元扩展。