php列出目录下所有文件的代码举例

发布时间:2020-02-14编辑:脚本学堂
本文介绍下,用php实现列出目录中所有文件的一例代码,供大家学习参考。

列出目录中所有文件,代码如下:

<?php
$current_dir = 'E:/temp/';
$dir = opendir($current_dir);
echo "direcotry list:<ul>";
while(false !== ($file=readdir($dir))){
if($file != "." && $file != ".."){
echo "<li>$file</li>";
}
} //by www.jb200.com
echo "</ul>";
closedir($dir);
?>

如果目录与网站在同一分区下,直接用$current_dir='/temp/';也行。

上面这个是windows下的例子,下面来看一个linux下列出目录中所有文件的php实例。
如下:
1,获取目录下文件,不包括子目录。

<?php
//获取某目录下所有文件、目录名(不包括子目录下文件、目录名)
    $handler = opendir($dir);
    while (($filename = readdir($handler)) !== false) {//务必使用!==,防止目录下出现类似文件名“0”等情况
        if ($filename != "." && $filename != "..") {
                $files[] = $filename ;
           }
       }
    }
    closedir($handler);
     
//打印所有文件名
foreach ($filens as $value) {
    echo $value."<br />";
}
?>

2、获取目录下所有文件,包括子目录。

<?php
function get_allfiles($path,&$files) {
    if(is_dir($path)){
        $dp = dir($path);
        while ($file = $dp ->read()){
            if($file !="." && $file !=".."){
                get_allfiles($path."/".$file, $files);
            }
        }
        $dp ->close();
    }
    if(is_file($path)){
        $files[] =  $path;
    }
} //edit www.jb200.com
   
function get_filenamesbydir($dir){
    $files =  array();
    get_allfiles($dir,$files);
    return $files;
}
   
$filenames = get_filenamesbydir("static/image/");
//打印所有文件名,包括路径
foreach ($filenames as $value) {
    echo $value."<br />";
}
?>