php读出目录下的所有目录及子目录下文件
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-02 10:43:30 浏览: 评论:0
一个利用php读出目录下的所有目录及子目录下文件的代码,很简单方便的第一个就是读取一级目录,后面可以无限目录读取,实例代码如下:
- <?php
- $dirname=@opendir("abc")or die("打开目录不成功<br>");
- readdir($dirname)."<br>";
- readdir($dirname)."<br>";
- while(($filess=readdir($dirname))!=false)
- {
- if(is_dir("abc/".$filess))
- {
- echo "目录:".$filess."<br>";
- }
- else
- {
- echo "文件:".$filess."<br>";
- }
- }
- closedir($dirname);
- ?>
只能读出html文件名,读不出abc目录下的目录名,下面我们再看一实例,实例代码如下:
- <?php
- /*
- * 递归获取指定路径下的所有文件或匹配指定正则的文件(不包括“.”和“..”),结果以数组形式返回
- * @param string $dir
- * @param string [$pattern]
- * @return array
- */
- function file_list($dir,$pattern="")
- {
- $arr=array();
- $dir_handle=opendir($dir);
- if($dir_handle)
- {
- // 这里必须严格比较,因为返回的文件名可能是“0”
- while(($file=readdir($dir_handle))!==false)
- {
- if($file==='.' || $file==='..')
- {
- continue;
- }
- $tmp=realpath($dir.'/'.$file);
- if(is_dir($tmp))
- {
- $retArr=file_list($tmp,$pattern);
- if(!emptyempty($retArr))
- {
- $arr[]=$retArr;
- }
- }
- else
- {
- if($pattern==="" || preg_match($pattern,$tmp))
- {
- $arr[]=$tmp;
- }
- }
- }
- closedir($dir_handle);
- }
- return $arr;
- }
- // 列出网站根目录下所有以".php"扩展名(不区分大小写)结尾的文件
- echo '<pre>';
- print_r(file_list($_SERVER['DOCUMENT_ROOT'],"//.php$/i"));
- echo '</pre>';
- ?>
Tags: php读出目录 所有目录
- 上一篇:php文件读写操作
- 下一篇:PHP 文件与目录删除程序
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)