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

luc*_*cas 1 php regex

我回显目录的内容,但不包括以下文件:

$exclude_list = array(".", "..", "index.php",".htaccess");
$scanned_directory = array_diff(scandir($dir), $exclude_list);   
Run Code Online (Sandbox Code Playgroud)

我想将目录中具有扩展名的所有文件添加.meta.js到排除列表。我可以使用正则表达式来做到这一点,还是必须遍历它们并将它们分别添加到数组中,或者还有其他方法吗?

mar*_*rio 5

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

 preg_grep("/^(\.|\.\.|index\.php|\.htaccess)$|\.meta\.js$/",
     $scanned_dirs, PREG_GREP_INVERT)
Run Code Online (Sandbox Code Playgroud)

这涵盖了您现有的排除项以及元扩展名。