PHP遍历目录的三种方法
12 Apr 2015第一种实现办法:用dir返回对象
<?php
function listDir($dir)
{
$mydir = dir($dir);
echo "<ul>";
while($file = $mydir->read())
{
if((is_dir("$dir/$file")))
{
echo "<li>$file</li>";
listDir("$dir/$file");
}
elseif($file!=="."&$file!=="..")
echo "<li><a href='$dir/$file' target='_blank'>$file</a></li>";
}
echo "</ul>";
$mydir->close();
}
listDir(".");
?>
第二种,使用readdir()函数
<?php
function listDir2($dir)
{
$mydir=opendir($dir);
echo "<ul>";
while(($file=readdir($mydir))!==false) {
if ($file!='.'&&$file!='..') {
if (is_dir($file)) {
echo "<li class='dir'>$file</li>";
listDir2("$dir/$file");
}else{
echo "<li class='file'><a href='$dir/$file' target='_blank'>$file</a></li>";
}
}
}
closedir($mydir);
echo "</ul>";
}
listDir2('.');
?>
第三种,使用scandir()函数
<?php
function listDir3($dir)
{
$mydir=scandir($dir);
echo "<ul>";
foreach ($mydir as $key => $value) {
if ($value!='.'&&$value!='..') {
if (is_dir($value)) {
echo "<li class='dir'>$value</li>";
listDir3("$dir/$value");
}else{
echo "<li class='file'><a href='$dir/$value' target='_blank'>$value</a></li>";
}
}
}
echo "</ul>";
}
listDir3(".");
?>