首页 > php开发 > php列出指定目录所有子文件夹与文件实例

php列出指定目录所有子文件夹与文件实例

<?php
function listDirFiles() {
    // 设置目录
    $dirs = './';
    // 申明文件夹数组与文件数组
    $aFolders = array();
    $aFiles = array();
    $ocfolder = opendir($dirs); //则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。用法opendir(path,context)
    while ($sFile = readdir($ocfolder)) // readdir() 函数返回由 opendir() 打开的目录句柄中的条目 语法:readdir(dir_stream)
    {
        if ($sFile != '.' && $sFile != '..') {
            if (is_dir($dirs . $sFile)) // 判断是否为目录,是返回ture否就返回false;
            $aFolders[] = 'dirs:' . $sFile . '<br />';
            else {
                $fsize = @filesize($dirs . $sFile); //filesize() 函数返回指定文件的大小。 语法:filesize(filename)
                if (!$fsize) {
                    $fsize = 0;
                }
                if ($fsize > 0) {
                    $fsize = round($fsize / 1024); //round() 函数对浮点数进行四舍五入。 round(x,prec)
                    if ($fsize < 1) $fsize = 1;
                }
                $aFiles[] = '文件名:' . $sFile . '文件大小=' . $fsize . 'KB<br />';
            }
        }
    }
    // 对目录进行自然排序
    natcasesort($aFolders); //对数组自然排序 natcasesort(array)
    foreach ($aFolders as $sFolder) {
        echo $sFolder;
    }
    // 对文件进行自然排序
    natcasesort($aFiles); // 自然1-9,a-z排序natcasesort(array);
    foreach ($aFiles as $sFiles) {
        echo $sFiles;
    }
}

/*

调用方法当前有目录

dirs:1

dirs:www.phprm.com

文件名:1.php

文件名:2.php

*/

listDirFiles();

/*

输出结果为

dirs:1

dirs:www.phprm.com

文件名:1.php文件大小=1KB

文件名:2.php文件大小=2KB

用到函数解析

opendir

则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。用法opendir(path,context)

is_dir

判断是否为目录,是返回ture否就返回false;

readdir

readdir() 函数返回由 opendir() 打开的目录句柄中的条目 语法:readdir(dir_stream)

filesize()

 函数返回指定文件的大小。 语法:filesize(filename)

natcasesort(array)

natcasesort() 函数实现了"自然排序",即数字从 1 到 9 的排序方法,字母从 a 到 z 的排序方法,短者优先,该函数不区分大小写。数组的索引与单元值保持关联


教程地址:http://www.phprm.com/develop/ea604f9beedf58c6de73209fa72d8727.html

欢迎转载!但请带上文章地址^^

标签:none

发表留言