PHP遍历目录

遍历目录的所有文件是开发中经常用到的案例,也是面试中最喜欢问的题目,所有在此用递归函数实现一下!

<?php

header('Content-Type: text/html; charset=utf-8');

function read_dirs($path) {
    // 判断path是否存在
    if(!file_exists($path)){
        var_dump([ 'code'=>'1001','msg' =>'path is not exits!']);
    // 判断path是否为目录
    }elseif (!is_dir($path)){
       var_dump(['code' => '1002','msg'  => 'is not dir' ]);
    }else{
        $dir_handle = opendir($path);
        while(false !== $file=readdir($dir_handle)) {
            if ($file=='.' || $file=='..') continue;

            //输出该文件
            echo $file, "\n";
            // 判断当前file是否为目录
            if(is_dir($path . '/' . $file)) {
                // file为目录时进行递归遍历
                read_dirs($path . '/' . $file);
            }
        }
        closedir($dir_handle);
    }
}

read_dirs('./demo');
?>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用 PHP 的 opendir()、readdir() 和 closedir() 函数来遍目录路径。下面是一个示例代码: ```php <?php $dir = "/path/to/directory"; // 打开目录 if (is_dir($dir)){ if ($dh = opendir($dir)){ // 遍目录中的文件和子目录 while (($file = readdir($dh)) !== false){ // 忽略 . 和 .. 目录 if($file != "." && $file != ".."){ echo "filename: " . $file . "<br>"; } } // 关闭目录 closedir($dh); } } ?> ``` 在上面的示例中,$dir 是要遍目录路径。首先,使用 is_dir() 函数检查该路径是不是一个目录。如果是目录,则使用 opendir() 函数打开该目录,并使用 readdir() 函数遍目录中的文件和子目录。在遍过程中,忽略 . 和 .. 目录。最后,使用 closedir() 函数关闭目录。 ### 回答2: 在PHP中,可以使用`scandir`函数来遍目录路径。`scandir`函数可以返回指定路径下的所有文件和子目录的名称。 下面是使用`scandir`函数遍目录路径的示例代码: ``` <?php $path = "目录路径"; // 替换为你要遍目录路径 // 使用scandir函数获取指定路径下的所有文件和子目录的名称 $files = scandir($path); // 遍得到的文件和子目录的名称 foreach ($files as $file) { // 排除当前目录(.)和上级目录(..) if ($file == '.' || $file == '..') { continue; } // 根据文件或目录的名称进行相应的操作 $filePath = $path . '/' . $file; if (is_dir($filePath)) { // 如果是目录,可以进行递归遍或其他操作 echo "目录:$file\n"; } else { // 如果是文件,可以进行相应的操作 echo "文件:$file\n"; } } ?> ``` 在上述代码中,首先通过`scandir`函数获取指定路径下的所有文件和子目录的名称。然后使用`foreach`循环遍得到的文件和子目录的名称。使用`is_dir`函数判断是文件还是目录,并进行相应的操作。 需要注意的是,在遍之前排除了当前目录(.)和上级目录(..),因为它们在任何目录中都是固定的。 运行以上代码,你可以替换`目录路径`为你要遍目录路径,然后执行该代码,就可以输出该目录下的所有文件和子目录的名称。 ### 回答3: 在PHP中,可以使用`opendir()`函数打开一个目录,然后使用`readdir()`函数读取目录中的内容,实现遍目录的功能。 首先,我们使用`opendir()`函数打开目录,将目录的路径作为参数传入,得到一个目录的句柄,如下所示: ```php $dir = opendir('path/to/directory'); ``` 接下来,我们可以使用`readdir()`函数读取目录中的内容。`readdir()`函数会依次读取目录中的文件和子目录,直到读取完所有内容或者出现错误。每次读取一个内容,可以通过循环来遍目录中的所有内容,如下所示: ```php while (($file = readdir($dir)) !== false) { // 对每个文件和子目录进行处理 echo $file."<br>"; } ``` 在循环体内,我们可以对每个文件或子目录进行处理,例如打印文件名或执行其他操作。在上面的示例中,我们使用`echo`语句打印每个文件或子目录的名称。 最后,遍结束后,我们需要关闭目录句柄,以释放资源: ```php closedir($dir); ``` 综上所述,以上代码片段演示了如何使用PHP目录路径。我们首先使用`opendir()`函数打开目录,然后使用`readdir()`函数读取目录中的内容,并对每个文件和子目录进行处理。最后,我们使用`closedir()`函数关闭目录句柄。这样,我们就可以在PHP中实现目录的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值