php中哪个函数可以取得某目录下的所有文件名?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中哪个函数可以取得某目录下的所有文件名?相关的知识,希望对你有一定的参考价值。
参考技术A没有这样的函数,只能自己实现,下面是我常用的,这个不仅会获取到当前目录下的所有文件,而且还会遍历所有子文件夹下的文件。
<?phpfunction read_all_dir ( $dir )
$result = array();
$handle = opendir($dir);
if ( $handle )
while ( ( $file = readdir ( $handle ) ) !== false )
if ( $file != '.' && $file != '..')
$cur_path = $dir . DIRECTORY_SEPARATOR . $file;
if ( is_dir ( $cur_path ) )
$result['dir'][$cur_path] = read_all_dir ( $cur_path );
else
$result['file'][] = $cur_path;
closedir($handle);
return $result;
?> 参考技术B
以下是来自手册的两个例子,希望对你有帮助,对于 php5 来说,使用 scandir 会简单点。
<?php$dir = '/tmp';
// example1 php5
$files1 = scandir($dir);
print_r($files1);
// example2 php4 | php5
$dh = opendir($dir);
while (false !== ($filename = readdir($dh)))
$files2[] = $filename;
print_r($files2);
/* 显示
Array(
[0] => .
[1] => ..
[2] => bar.php
[3] => foo.txt
[4] => somedir
)
*/ 参考技术C glob,百度一下这个函数 参考技术D 有 遍历目录 第5个回答 2014-03-11 glob还有scandir本回答被提问者采纳
php 利用scandir() 函数 扫描出制定目录下的所有文件
//遍历子文件夹和文件夹的内容 并且计算出文件的多少 //一个demo 引号替换下
function scan($dir){ static $i=0; static $d=0; $dirArr = scandir(‘.’); foreach($dirArr as $v){ if($v!=‘.’ && $v!=‘..’){ $dirname = $dir.”\\”.$v; //子文件夹的目录地址 if(is_dir($dirname)){ $count[‘dir’] = ++$d; scan($dirname); } $count[‘file’] = ++$i; } } return $count; } $count = scan(‘.’); echo “一共文件{$count[‘file’]}个,文件夹 {$count[‘dir’]}个 “;
//文件的类别
//针对当前目录的情况下 $dir = scandir(‘.’); foreach($dir as $v){ $base = strrchr($v,’.’); if($v!=‘.’){ if($v == ‘..’){ $type =‘上级目录’; } //类型不一一举例 if(is_dir($v)){ $type =‘目录’; }elseif($base== ‘.jpg’ || $base==‘.gif’){ $type =‘ 图片文件’; }elseif($base== ‘.rar’ || $base==‘.zip’){ $type =‘ 压缩文件’; }else{ $type=“文件”; } } }
个人感觉非常无聊的功能 写的玩吧
以上是关于php中哪个函数可以取得某目录下的所有文件名?的主要内容,如果未能解决你的问题,请参考以下文章