这里的“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循环输出指定目录下的所有文件和文件夹路径例子(简单实用) - Python技术站