使用php函数scandir排除特定目录
2014-07-30来源:易贤网

scandir()函数返回一个数组,其中包含指定路径中地文件和目录.如下所示:

例子:

代码如下:

<?php

print_r(scandir('test_directory'));

?>

输出:

代码如下:

array

(

[0]=>.

[1]=>..

[2]=>1.txt

[3]=>2.txt

)

大部分情况只需要该目录地文件列表数组,如下:

代码如下:

array

(

[0]=>1.txt

[1]=>2.txt

)

一般是通过排除“.”或者“..”地数组项解决地:

代码如下:

<?php

functionfind_all_files($dir)

{

    $root = scandir($dir);

    foreach($rootas$value)

    {

        if($value === '.' || $value === '..'){

            continue;

        }

        if(is_file($dir/$value)){

            $result[] = $dir/$value;

            continue;

        }

        foreach(find_all_files($dir/$value)as$value)

        {

            $result[] = $value;

            }

        }

    return$result;

    }

?>

另外一种方法,利用array_diff函数,剔除scandir函数执行的到地数组:

代码如下:

<?php

$directory='/path/to/my/directory';

$scanned_directory=array_diff(scandir($directory),array('..','.'));

?>

通常情况代码管理会产生.svn文件,或者限制目录访问权限地.htaccess等文件.所以通过array_diff函数来过滤会更方便.

更多信息请查看IT技术专栏

推荐信息