首页  >  文章  >  后端开发  >  php 读取某目录下的所有文件

php 读取某目录下的所有文件

WBOY
WBOY原创
2016-07-30 13:31:121639浏览

/**
 * 取得输入目录所包含的所有目录和文件
 * 以关联数组形式返回
 * author: flynetcn
 */
function deepScanDir($dir)
{
    $fileArr = array();
    $dirArr = array();
    $dir = rtrim($dir, '//');
    if(is_dir($dir)){
        $dirHandle = opendir($dir);
        while(false !== ($fileName = readdir($dirHandle))){
            $subFile = $dir . DIRECTORY_SEPARATOR . $fileName;
            if(is_file($subFile)){
                $fileArr[] = $subFile;
            } elseif (is_dir($subFile) && str_replace('.', '', $fileName)!=''){
                $dirArr[] = $subFile;
                $arr = deepScanDir($subFile);
                $dirArr = array_merge($dirArr, $arr['dir']);
                $fileArr = array_merge($fileArr, $arr['file']);
            }
        }
        closedir($dirHandle);
    }
    return array('dir'=>$dirArr, 'file'=>$fileArr);
}
//示例
$dir = '/var/htdocs/w4/article';
$arr = deepScanDir($dir);
print_r($arr);
/**
 * 取得输入目录所包含的所有文件
 * 以数组形式返回
 * author: flynetcn
 */
function get_dir_files($dir)
{
    if (is_file($dir)) {
        return array($dir);
    }
    $files = array();
    if (is_dir($dir) && ($dir_p = opendir($dir))) {
        $ds = DIRECTORY_SEPARATOR;
        while (($filename = readdir($dir_p)) !== false) {
            if ($filename=='.' || $filename=='..') { continue; }
            $filetype = filetype($dir.$ds.$filename);
            if ($filetype == 'dir') {
                $files = array_merge($files, get_dir_files($dir.$ds.$filename));
            } elseif ($filetype == 'file') {
                $files[] = $dir.$ds.$filename;
            }
        }
        closedir($dir_p);
    }
    return $files;
}

以上就介绍了php 读取某目录下的所有文件,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn