返回首页 - Notes - 2014

PHP 遍历文件夹


方法一

dir() 获取句柄,用 dir->read() 遍历文件,用 dir->close() 关闭句柄

<?php

function list_dir ($dir_path) {
    if (! is_dir($dir_path)) return ;

    $dir = dir($dir_path);

    echo "<ul>\n";
    while ($file = $dir->read()) {
        if (in_array($file, array('.', '..'))) continue;

        if (is_dir($dir_path.'/'.$file)) {
            echo "<strong><font color='red'>dir: </font></strong>", $file, "<hr>\n";
            list_dir($dir_path.'/'.$file);
        } else {
            echo "<strong><font color='blue'>file: </font></strong>", $file, "<hr>\n";
        }
    }
    echo "</ul>\n";

    $dir->close();
}

方法二

opendir() 获取句柄,用 readdir() 遍历文件,用 closedir() 关闭句柄

<?php

function list_dir ($dir_path) {
    if (! is_dir($dir_path)) return ;
    if (! ($dir = opendir($dir_path))) return ;

    echo "<ul>\n";
    while ($file = readdir($dir)) {
        if (in_array($file, array('.', '..'))) continue;

        if (is_dir($dir_path.'/'.$file)) {
            echo "<strong><font color='red'>dir: </font></strong>", $file, "<hr>\n";
            list_dir($dir_path.'/'.$file);
        } else {
            echo "<strong><font color='blue'>file: </font></strong>", $file, "<hr>\n";
        }
    }
    echo "</ul>\n";

    closedir($dir);
}

date : 2014-07-02