我正在使用scandir列出目录中的所有文件。但是./
,../
和tmp
文件夹应该例外。
我已经有了排除点和双点的方法:
$files = preg_grep('/^([^.])/', scandir($dir));
如何向其中添加tmp
文件夹? (该文件夹的名称是tmp)
答案 0 :(得分:1)
尝试:
$ toRemove = array('。','..','tmp');
$ cdir = scandir($ dir);
$ result = array_diff($ cdir,$ toRemove);
比preg_grep容易
答案 1 :(得分:1)
我会选择这种解决方案,因为已经@duskwuff提到,当前的代码不包括所有与启动文件.
$files = array_diff( scandir($dir), array(".", "..", "tmp") );
答案 2 :(得分:0)
由于它是正则表达式,因此您可以尝试看看negative lookahead:
$files = preg_grep('/^(?!tmp|\.{1,2})$/', scandir($dir));
答案 3 :(得分:0)
我会做这样的事情,如果你想坚持使用正则表达式
$files = preg_grep('/^(?!tmp|(?!([^.]))).*/', scandir($dir));