php怎么遍历指定目录下的文件(可指定文件类

php怎么遍历指定目录下的文件(可指定文件类,第1张

遍历目樱橡录下文件,首先获取该目录下的所脊茄旁有文件名。

$folder = './folder/'

foreach (scandir($folder) AS $value) {

    if ($value == '.' OR $value == '..') continue

    echo '文件名 : ' . $value . "纳告\n"

}

这篇文章主要介绍了PHP遍历并打印指定目录下所有文件实例,需要的朋友可以参考下

代码如下:

<?php

//功能:遍历并打印指定目录下所有文件

function

scan_dir($dir_name,$dir_flag=1)

{

static

$FILE_COUNT=1

//记录文件数目

初值为1

目录名称不记

$FILE_COUNT--

//每调用一次scan_dir()函数自减1

@$dir_handle=opendir($dir_name)

//抑制错误信息显示

便于自定义错误显示

if(!$dir_handle)

die("目录打开错误!")

while(false!==($filename=readdir($dir_handle)))

//文件名为‘0'时,readdir返回

FALSE,判断返回值是否不全等

{

$flag=$dir_flag

//古怪的

is_dir($filename)

!

$filename这个路径必须能够寻到!当$filename不存在或高蚂者不是目录时返回false

if($filename!='.'&&$filename!='..')

{

$FILE_COUNT++

//不记录当前路径和上一级路径

while($flag>0&&--$flag)

//负数仍为真

echo

'

'

if(is_dir($dir_name.$filename))

//判断

是否为一个目录

{

echo

'<strong>'."<a

href=".$dir_name.$filename.">".$filename."</a></strong><br>"

scan_dir($dir_name.$filename.'/',$dir_flag+1)

//$dir_flag标志缺盯目录树层次戚扮埋

}

else

{

echo

"<a

href=".$dir_name.$filename.">".$filename."</a><br>"

}

}

}

closedir($dir_handle)

//关闭目录句柄

echo

"文件总数:".$FILE_COUNT.'<br>'

}

scan_dir('D:wampwwwtestlamp61')

//指定的文件路径

?>

最近刚写的,可以遍历指定目录下的所有文件、文件夹、特定后缀的文件:

/**

 * 遍历目录

 * @param string $dir 绝对/相对路径

 * @param string $filter 默认*返回所有文件及文件夹,*.php仅返回php文件,消厅如果$patten为GLOB_BRACE可实现多文件筛选,如*.{php,html},返回php和html文件

 * @param const $patten 默认GLOB_BRACE,可选:GLOB_ONLYDIR,更多参数请参考手册

 * @param string/bool $nocache 防止本次调用的结果缓存上次的结果,如果一个脚本仅调用凳明一次本函数,则不用管,否则得设个值

 * @return array

 */

function globdir($dir, $filter = '*', $patten = GLOB_BRACE, $nocache = null) {

    static $file_arr = array ()

    isset($nocache) && $file_arr = array ()

    if (!is_dir($dir)) return

    if ($patten == GLOB_ONLYDIR) {

        $code = 'if (is_dir($file)) {$file_arr[] = $fileglobdir($file, "*", GLOB_ONLYDIR)}'

    } else {

        $code = 'is_file($file) ? $file_arr[] = $file : globdir($file,"' . 枣桥告$filter . '",' . $patten . ')'

    }

    array_walk(glob("{$dir}/{$filter}", $patten), create_function('$file, $k, $file_arr', $code), &$file_arr)

    if ($filter != '*') {

        array_walk(glob("{$dir}/*", GLOB_ONLYDIR), create_function('$dir,$k,$param', 'list($filter, $patten) = explode("|", $param)globdir($dir, $filter, $patten)'), "{$filter}|{$patten}")

    }

    return $file_arr

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12130405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存