<?php
/**********************
一个简单的目录递归函数
第一种实现办法:用dir返回对象
***********************/
function tree($directory)
{
$mydir=dir($directory);
echo "<ul>";
while($file=$mydir->read()){
if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".."))
{
echo "<li><font color='#ff00cc'><b>$file</b></font></li>n";
tree("$directory/$file");
}
else
{
echo "<li>$file</li>n";
}
}
echo "</ul>";
$mydir->close();
}
//开始运行
echo "<h2>目录为粉红色</h2><br>n";
tree("E:/");
/***********************
第二种实现办法:用readdir()函数
************************/
function listDir($dir){
if(is_dir($dir)){
if ($dh = opendir($dir)) {
while (($file= readdir($dh)) !== false){
if((is_dir($dir."/".$file)) && $file!="." && $file!="..")
{
echo "<b><font color='red'>文件名:</font></b>".$file."<br><hr>";
listDir($dir."/".$file."/");
}
else
{
if($file!="." && $file!="..")
{
echo $file."<br>";
}
}
}
closedir($dh);
}
}
}
//开始运行
listDir("E:/php/");
?>
/**********************
一个简单的目录递归函数
第一种实现办法:用dir返回对象
***********************/
function tree($directory)
{
$mydir=dir($directory);
echo "<ul>";
while($file=$mydir->read()){
if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".."))
{
echo "<li><font color='#ff00cc'><b>$file</b></font></li>n";
tree("$directory/$file");
}
else
{
echo "<li>$file</li>n";
}
}
echo "</ul>";
$mydir->close();
}
//开始运行
echo "<h2>目录为粉红色</h2><br>n";
tree("E:/");
/***********************
第二种实现办法:用readdir()函数
************************/
function listDir($dir){
if(is_dir($dir)){
if ($dh = opendir($dir)) {
while (($file= readdir($dh)) !== false){
if((is_dir($dir."/".$file)) && $file!="." && $file!="..")
{
echo "<b><font color='red'>文件名:</font></b>".$file."<br><hr>";
listDir($dir."/".$file."/");
}
else
{
if($file!="." && $file!="..")
{
echo $file."<br>";
}
}
}
closedir($dh);
}
}
}
//开始运行
listDir("E:/php/");
?>
本文介绍了两种使用PHP实现目录递归遍历的方法。第一种方法使用dir()函数获取目录句柄,并通过递归调用输出所有子目录及文件。第二种方法采用readdir()函数进行遍历,同样支持递归展示子目录结构。
1856

被折叠的 条评论
为什么被折叠?



