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>'; 
?> 
这个就可以方便的无限目录遍历了。

时间: 2024-11-06 03:46:33

php读出目录下的所有目录及子目录下文件的相关文章

php读取目录及子目录下所有文件名的方法_php技巧

本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考.具体实现方法如下: 一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下: 复制代码 代码如下: $dir="./caxa/"; $file=scandir($dir); print_r($file); 稍微复杂点的,来自于php手册: 复制代码 代码如下: $dir = "/etc/php5/"; // Open a known directory,

深入理解linux下rc.d/目录文件以及程序开机自启动

由于我日常开发使用的是fedora9,所以,就已fedora9为例.    [root@feiyinzilgd rc.d]# pwd /etc/rc.d [root@feiyinzilgd rc.d]# ls init.d rc0.d rc2.d rc4.d rc6.d rc.sysinit rc rc1.d rc3.d rc5.d rc.local 其中,x.d为目录,其他的均为脚本可执行文件. 在讲述这几个目录以及文件的作用及关系之前,我们需要了解linux(RedHat系列)的启动顺序.

将某一目录下的所有相同格式的 XML文件绑定到不同的DataGrid

datagrid|xml 将某一目录下的所有相同格式的 XML文件绑定到不同的DataGrid的方法. <%@ Page Language="vb"%><%@ Import NameSpace = "System" %><%@ Import NameSpace = "System.Xml" %><%@ Import NameSpace = "System.IO" %><%@

获取某目录下的所有文件(包括子目录下文件)的数量(C#)

以前写过一个通过计算目录遍历所有文件和子目录的方法来获得某目录下的文件个数,结果发现速度极慢,远远不及系统本身目录属性里边显示的速度. int fileNum = 0;/**//// <summary>/// 获取某目录下的所有文件(包括子目录下文件)的数量/// </summary>/// <param name="srcPath"></param>/// <returns></returns>public in

C#实现的列出目录下所有子目录和文件的程序(附思路)

程序 把自己的资料刻录成很多光盘,发现连自己都很难找到需要的文件在哪张光盘上,因此我就根据需求,在Visual Studio.NET中写了一个列出目录下所有子目录和文件的程序,以方便我列出刻录的资料光盘上的所有文件信息. 本程序的主要算法是递归,主函数如下: //递归列出目录下的所有文件和子目录 public void ListFiles( FileSystemInfo fileinfo ) { if( ! fileinfo.Exists ) return; DirectoryInfo diri

如何在Win9x/2k下建立共享目录

在Windows中建立一个共享目录,通常是使用NetShareAdd函数.但是在Win2k和Win9x下,这个函数分别是包含在Netapi32.dll和Svrapi.dll中. 那么如果直接在程序中使用Netapi32.lib或Svrapi.lib,在不同的操作系统下运行时会发生找不到xxx函数的输出错误. 解决的办法就是通过GetProcAddress动态获取NetShareAdd.正好ccrun在csdn回答一位网友的问题,顺便写了些代码,在这里贴出来. 注: 1. 以下代码已在Win2k

VB.NET拷贝整个目录下所有子目录及文件的实例代码

这篇文章介绍了拷贝整个目录下所有子目录及文件的代码,有需要的朋友可以参考一下   复制代码 代码如下:  Public Sub CopyDerictory(ByVal DirectorySrc As DirectoryInfo, ByVal DirectoryDes As DirectoryInfo)         Dim strDirectoryDesPath As String = DirectoryDes.FullName & "" & DirectorySrc

详解Linux系统下的/dev目录

  dev是设备(device)的英文缩写./dev这个目录对所有的用户都十分重要.因为 在这个目录中包含了所有Linux系统中使用的外部设备.但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样.它实际上是一个访问这些外部设备的端口.我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别. Linux沿袭Unix的风格,将所有设备认成是一个文件. 设备文件分为两种:块设备文件(b)和字符设备文件(c),设备文件一般存放在/dev目录下,对常见设

eclipse+android-Eclipse下FileExplorer中只能显示data/data文件夹下的文件夹目录

问题描述 Eclipse下FileExplorer中只能显示data/data文件夹下的文件夹目录 Eclipse下FileExplorer中只能显示data/data文件夹下的文件夹目录,鼠标双击却不能打开某个具体的文件. 例如双击无法打开com.example.filepersisitencetest文件夹. 谢谢! 解决方案 点左边的箭头能展开么? 解决方案二: 在对应的工程目录中看看实际的路径是否存在吧

Java遍历输出指定目录、树形结构所有文件包括子目录下的文件_java

下面通过一段代码介绍下Java输出指定目录.树形结构下的所有文件包括子目录中的文件的方法,并附有效果图. import java.io.File; public class ReadDirectory { // 文件所在的层数 private int fileLevel; /** * 生成输出格式 * @param name 输出的文件名或目录名 * @param level 输出的文件名或者目录名所在的层次 * @return 输出的字符串 */ public String createPri