PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)

这里的“PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)”指的是使用PHP代码来遍历指定目录下的所有文件和文件夹,并以列表形式将它们的路径输出到网页上,帮助网站用户更好地了解网站结构和文件路径等信息。下面是该攻

这里的“PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)”指的是使用PHP代码来遍历指定目录下的所有文件和文件夹,并以列表形式将它们的路径输出到网页上,帮助网站用户更好地了解网站结构和文件路径等信息。下面是该攻略的完整过程:

1、准备工作

在进行文件遍历前,需要进行一些准备工作,主要包括:

  • 指定要遍历的目录
  • 判断目录是否存在
  • 打开目录
  • 遍历目录内容

2、指定要遍历的目录

有两种方式来指定要遍历的目录:

  • 直接指定,比如:“/var/www/html”或“D:\work\php\website”
  • 动态指定,比如从用户提交的表单中获取目录路径

这里我们采用直接指定的方式,具体代码如下:

$dir = "/var/www/html";

3、判断目录是否存在

在打开目录之前,需要先判断该目录是否存在,防止出现目录不存在的错误。判断目录是否存在的代码如下:

if (is_dir($dir)) {
  // 指定的目录存在
} else {
  // 指定的目录不存在,抛出错误
  exit("指定的目录不存在!");
}

4、打开目录

接下来需要打开指定目录,获取该目录中的文件和子目录。打开目录的代码如下:

$handle = opendir($dir);

5、遍历目录内容

通过循环遍历,一次获取目录中的每个文件和子目录,并将它们的路径输出到网页上。遍历目录的代码如下:

echo "<ul>";
while ($file = readdir($handle)) {
  if ($file != "." && $file != "..") {
    $filepath = $dir . '/' . $file;
    if (is_dir($filepath)) {
      echo "<li><b>[" . $file . "]</b></li>";
      loopDir($filepath);
    } else {
      echo "<li>" . $file . "</li>";
    }
  }
}
echo "</ul>";

其中,如果是子目录,需要递归调用loopDir()函数,暂且不做讲解,这里仅介绍循环中的代码,具体含义如下:

  • readdir($handle):读取目录中的文件和子目录
  • if ($file != "." && $file != ".."):排除掉当前目录和上级目录
  • $filepath = $dir . '/' . $file:获取文件的完整路径
  • is_dir($filepath):判断是否是子目录
  • echo "<li><b>[" . $file . "]</b></li>";:如果是子目录,则使用加粗字体显示文件夹名
  • loopDir($filepath);:递归调用loopDir()函数,再次遍历子目录中的内容
  • echo "<li>" . $file . "</li>";:如果是文件,则直接输出文件名

完整示例一

结合以上内容,我们可以得到一个完整的示例代码如下:

<?php
function loopDir($dir) {
  if (is_dir($dir)) {
    $handle = opendir($dir);
    echo "<ul>";
    while ($file = readdir($handle)) {
      if ($file != "." && $file != "..") {
        $filepath = $dir . '/' . $file;
        if (is_dir($filepath)) {
          echo "<li><b>[" . $file . "]</b></li>";
          loopDir($filepath);
        } else {
          echo "<li>" . $file . "</li>";
        }
      }
    }
    echo "</ul>";
    closedir($handle);
  } else {
    exit("指定的目录不存在!");
  }
}

// 指定要遍历的目录
$dir = "/var/www/html";
// 执行遍历操作
loopDir($dir);
?>

该示例可以直接将目录中的文件和文件夹路径输出到网站中,方便用户查看和了解网站文件结构。

完整示例二

如果你想要将遍历结果保存到一个数组中,以便后续进行其他操作,可以使用下面这个示例代码:

<?php
function loopDir($dir) {
  if (is_dir($dir)) {
    $handle = opendir($dir);
    $res = array();
    while ($file = readdir($handle)) {
      if ($file != "." && $file != "..") {
        $filepath = $dir . '/' . $file;
        if (is_dir($filepath)) {
          $res[$file] = loopDir($filepath);
        } else {
          $res[] = $file;
        }
      }
    }
    closedir($handle);
    return $res;
  } else {
    exit("指定的目录不存在!");
  }
}

// 指定要遍历的目录
$dir = "/var/www/html";
// 执行遍历操作,将结果保存到$res数组中
$res = loopDir($dir);
print_r($res);
?>

该示例代码将遍历结果保存到了一个多维数组中,便于后续的操作。

本文标题为:PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)

基础教程推荐