>  기사  >  백엔드 개발  >  php는 디렉토리의 모든 파일을 읽습니다.

php는 디렉토리의 모든 파일을 읽습니다.

WBOY
WBOY원래의
2016-07-30 13:31:121643검색

/**
* 입력 디렉터리에 포함된 모든 디렉터리와 파일 가져오기
* 연관 배열로 반환
* 작성자: 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']);
            }
        }
        closeir($dirHandle);
    }
    배열 반환 ('디렉터리'= >$dirArr, 'file'=>$fileArr);
}
//示例
$dir = '/var/htdocs/w4/article';
$arr = deepScanDir( $dir);
print_r($arr);
/**
* 입력 디렉터리에 포함된 모든 파일 가져오기
* 배열로 반환
* 작성자: flynetcn
*/
함수 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=='..') { 계속 ; }
            $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;
            }
        }
closeir($dir_p);
    }
    return $files;
}

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.