使用PHP函数scandir排除特定目录

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函数来过滤会更方便。

(0)

相关推荐

  • PHP不用递归遍历目录下所有文件的代码

    实现代码: /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

  • php无限遍历目录示例

    最近在能php目录操作,搞了一个目录无限遍历: 使用的函数有: isset()判断某个变量是否定义 chdir() 将当前目录改变为指定的目录. opendir() 打开目录. readdir()读取目录. getcwd().获取当前目录. 还用到了for  if  GET传值 大概就这些东东: 下面是代码: 复制代码 代码如下: <?phpif(isset($_GET['id'])){ $s=$_GET['id'];        chdir($s);    }echo '当前在'.getcw

  • php遍历目录输出目录及其下的所有文件示例

    好多次笔试都会遇到这个问题,所以特意给写了出来 复制代码 代码如下: function my_scandir($dir){ $files=array(); if(is_dir($dir)){ if($handle=opendir($dir)){ while(($file=readdir($handle))!==false){ if($file!='.' && $file!=".."){ if(is_dir($dir."/".$file)){ $fil

  • php目录操作实例代码

    复制代码 代码如下: <?php     /**    * listdir    */    header("content-type:text/html;charset=utf-8"); $dirname = "./final/factapplication"; function listdir($dirname) {        $ds = opendir($dirname);        while (false !== ($file = readd

  • php实例分享之通过递归实现删除目录下的所有文件详解

    先贴代码: 复制代码 代码如下: <?phpfunction delFile($dirName){  if ($handle = opendir("$dirName")){  while (($item = readdir($handle))!=false){   if ($item!="." && $item!="..")  {    if ( is_dir( "$dirName/$item" ) )

  • PHP遍历目录并返回统计目录大小

    复制代码 代码如下: <?php $dirname = "test1"; //mkdir($dirname); //遍历一层目录 function listdir($dirname) { $ds = opendir($dirname); while($file = readdir($ds)) { $path = $dirname.'/'.$file; if(is_dir($file)) { echo "DIR:".$file."<br>&

  • php实现建立多层级目录的方法

    本文以实例形式说明了php建立多层级目录的实现方法,代码简洁实用,功能强大,对于php程序员来说有一定的参考借鉴价值.实例详情如下: /** *根据路径path建立多级目录 *$dir目标目录 $mode权限,0700表示最高权限 */ function makedir( $dir , $mode = "0700" ) { if(strpos($dir , "/" )){ $dir_path = "" ; $dir_info = explode

  • 在服务端进行目录建立、删除,文件上传、删除的过程的php代码

    <?php extract($_POST); extract($_GET); ?> <html> <head> <title>查看服务器端目录和文件</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body bgcolor="#FFFFFF&qu

  • 使用PHP函数scandir排除特定目录

    scandir()函数返回一个数组,其中包含指定路径中的文件和目录.如下所示: 例子: 复制代码 代码如下: <?phpprint_r(scandir('test_directory'));?> 输出: 复制代码 代码如下: Array([0]=>.[1]=>..[2]=>1.txt[3]=>2.txt) 大部分情况只需要该目录的文件列表数组,如下: 复制代码 代码如下: Array([0]=>1.txt[1]=>2.txt) 一般是通过排除".&

  • asp.net 特定目录form验证

    就想将这个form验证运用到我作的网站上去,这样也可以增强一点网站的基础安全性. 今天上午,来到公司开始上网查找资料,学习form验证,因为我做的那个网站框架已经设计好了,需要对后台进行验证,后台的所有文件是在一个admin文件夹下,也就是说,所谓的form验证就是对admin下的文件进行form验证.我上网找了一些资料,都只是说对根目录下面的文件或者文件夹进行验证,也看到了可以运用<location path="1111">来进行排除,我就反其道而行之. 复制代码 代码如

  • php使用glob函数快速查询指定目录文件的方法

    本文实例讲述了php使用glob函数快速查询指定目录文件的方法.分享给大家供大家参考.具体如下: php搜索当前目录所有文件,代码如下: 复制代码 代码如下: $array = glob('*.*'); print_r($array );    /* Array (     [0] => 1.php     [1] => 10.php     [2] => 11.php     [3] => 2.asp     [4] => 3.asp     [5] => 4.asp

  • Python实现的在特定目录下导入模块功能分析

    本文实例讲述了Python实现的在特定目录下导入模块功能.分享给大家供大家参考,具体如下: 方法1.在指定的目录下导入特定模块,(tab.py换行自动补齐语法模块) root@kali:~# ls /root/python/ csvt01 csvtpy scan1.py scanhostport.py tab.py tab.pyc test.py root@kali:~# pwd /root root@kali:~# python Python 2.7.3 (default, Mar 14 20

  • python中pandas.DataFrame排除特定行方法示例

    前言 大家在使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,关于python中pandas.DataFrame的基本操作,大家可以查看这篇文章. pandas.DataFrame排除特定行 如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列表方式传入,还可以传入字典,指定列进行筛选. 但是如果我们只想要所有内容中不包含特定行的内容,却并没有一个isnotin()方法.我今天的工作就遇到了这样的需

  • php使用glob函数遍历文件和目录详解

    php glob()函数返回匹配指定模式的文件名或目录.因此我们可以使用glob函数来查找文件,也可以实现目录的遍历. 函数说明:array glob ( string $pattern [, int $flags ] ) 功能:寻找与模式匹配的文件路径,返回包含匹配文件(目录)的数组(注:被检查的文件必须是服务器系统的,不能用于远程文件) 参数说明:第一个参数:匹配模式:第二个可选参数: GLOB_MARK - 在每个返回的项目中加一个斜线 GLOB_NOSORT - 按照文件在目录中出现的原

  • Android如何遍历特定目录下所有文件

    第一个案例为大家分享了Android遍历特定目录下所有文件,包含子目录的,并删除最新创建的. private boolean deleteLastFromFloder(String path) { boolean success = false; try { ArrayList<File> images = new ArrayList<File>(); getFiles(images, path); File latestSavedImage = images.get(0); if

  • pandas.DataFrame选取/排除特定行的方法

    pandas.DataFrame选取特定行 使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列表方式传入,还可以传入字典,指定列进行筛选. >>> df = pd.DataFrame([['GD', 'GX', 'FJ'], ['SD', 'SX', 'BJ'], ['HN', 'HB', 'AH'], ['HEN', 'HEN', 'HL

  • 使用批处理脚本在特定目录中启动Git-Bash窗口

    问题描述 平时想要在项目目录中输入git命令,我需要先打开git-bash窗口,然后还要cd到项目目录中.这挺麻烦的.我现在想: 通过批处理脚本,直接在某个目录中启动git-bash窗口. 实现 在项目目录下,创建一个批处理脚本(StartGitBash.bat)文件,写入如下的命令: start F:\Program" "Files\Git\git-bash.exe --cd=D:\dev\workspace\HexoTools 命令解释start用于启动一个窗口F:\Program

  • wget下载整个网站(整个子目录)或特定目录

    使用wget命令下载父目录下的整个子目录 使用wget命令下载父目录下的整个子目录,命令如下: wget -r --level=0 -E --ignore-length -x -k -p -erobots=off -np -N http://www.remote.com/remote/presentation/dir 将会下载远程服务器的整个文件夹下到你电脑当前文件目录下. 如何使用 wget 下载一个目录下的所有文件 wget -r -np -nH -R index.html http://u

随机推荐