>  기사  >  백엔드 개발  >  glob 메서드를 사용하여 폴더의 모든 파일을 탐색하는 방법에 대한 관련 방법

glob 메서드를 사용하여 폴더의 모든 파일을 탐색하는 방법에 대한 관련 방법

jacklove
jacklove원래의
2018-06-09 10:34:402163검색

폴더의 모든 파일을 탐색합니다. 일반적으로 opendirreaddir 메소드를 사용하여 탐색할 수 있습니다.

예: 지정된 디렉터리에서 모든 PHP 파일 찾기(하위 폴더 검색 안 함) 코드는 다음과 같습니다.

<?php$path = dirname(__FILE__);$result = traversing($path);
print_r($result);function traversing($path){
    $result = array();    if($handle = opendir($path)){        while($file=readdir($handle)){            if($file!=&#39;.&#39; && $file!=&#39;..&#39;){                if(strtolower(substr($file, -4))==&#39;.php&#39;){
                    array_push($result, $file);
                }
            }
        }
    }    return $result;
}?>

트래버스에 glob 메서드를 사용하는 경우 코드는 다음과 같습니다. 단순화

<?php$path = dirname(__FILE__);$result = glob($path.&#39;/*.php&#39;);
print_r($result);?>

참고 glob은 path+search result 경로를 반환합니다(예: path='/home/fdipzone'). 위 예에서는

Array(
    [0] => /home/fdipzone/a.php
    [1] => /home/fdipzone/b.php
    [2] => /home/fdipzone/c.php
)

를 반환합니다. 이는 다음에서 반환한 결과와 다릅니다. opendir 및 readdir.

현재 디렉터리를 순회하는 경우. 다음과 같이 변경할 수 있습니다: glob('*.php');
glob 구문 설명:

array glob ( string $pattern [, int $flags = 0 ] )

glob() 이 함수는 libc glob() 함수에서 사용하는 규칙을 따릅니다. 패턴으로 모든 일치 항목을 찾으려면 일치하는 파일 경로는 일반 쉘에서 사용하는 규칙과 유사합니다. 약어 확장이나 매개변수 대체는 수행되지 않습니다. Glob은 일반 경로 일치를 사용하는 데 강력합니다.

flags 유효한 플래그는 다음과 같습니다.
GLOB_MARK - 반환된 각 항목에 슬래시를 추가합니다.
GLOB_NOSORT - 디렉터리에 나타나는 원래 순서대로 파일을 반환합니다(정렬되지 않음)
GLOB_NOCHECK - if 반환 패턴 일치하는 파일이 없으면 검색에 사용됩니다.
GLOB_NOESCAPE - 이스케이프되지 않은 백슬래시 메타 문자
GLOB_BRACE - 'a', 'b' 또는 'c'와 일치하도록 {a,b,c}를 확장합니다.
GLOB_ONLYDIR - 디렉토리 항목만 반환합니다. 패턴 일치
GLOB_ERR - 오류 메시지(예: 읽을 수 없는 디렉터리)를 중지하고 읽고, 기본적으로 모든 오류를 무시합니다.

예: glob 메서드를 사용하여 폴더(하위 폴더 포함) 아래에 지정된 모든 PHP 파일을 탐색합니다

<?php$path = dirname(__FILE__);$result = array();
traversing($path, $result);
print_r($result);function traversing($path, &$result){
    $curr = glob($path.&#39;/*&#39;);    if($curr){        foreach($curr as $f){            if(is_dir($f)){
                array_push($result, $f);
                traversing($f, $result);
            }elseif(strtolower(substr($f, -4))==&#39;.php&#39;){
                array_push($result, $f);
            }
        }
    }
}?>

이 글에서는 glob 메소드를 사용하여 폴더 아래의 모든 파일을 탐색하는 방법을 설명합니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 참고하세요.

관련 추천:

PHP 부동 소수점 수 비교 방법에 대한 설명

mysql을 통해 쿼리 결과를 csv로 내보내는 방법에 대한 설명

php array_push와 $arr[]=$value 간의 성능 비교

위 내용은 glob 메서드를 사용하여 폴더의 모든 파일을 탐색하는 방법에 대한 관련 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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