繁体   English   中英

在php中使用scandir时如何排除某个文件夹

[英]how to exclude a certain folder when using scandir in php

我正在使用 scandir 列出目录中的所有文件。 但是./../tmp文件夹应该有一个例外。

我已经有了这个来排除点和双点:

$files = preg_grep('/^([^.])/', scandir($dir));

如何将tmp文件夹添加到其中? (文件夹名称为 tmp)

尝试 :

   $toRemove = array('.','..','tmp'); 

   $cdir = scandir($dir);
   
   $result = array_diff($cdir, $toRemove);

它比preg_grep更容易

我会选择这个解决方案,因为@duskwuff 已经提到过,您当前的代码排除了所有以.

$files = array_diff( scandir($dir), array(".", "..", "tmp") );

由于它是一个正则表达式,您可以尝试查看负面预测

$files = preg_grep('/^(?!tmp|\.{1,2})$/', scandir($dir));

如果你想坚持使用正则表达式,我会做类似的事情

$files = preg_grep('/^(?!tmp|(?!([^.]))).*/', scandir($dir));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM