>  기사  >  백엔드 개발  >  glob 메서드를 사용하여 폴더의 모든 파일을 탐색합니다.

glob 메서드를 사용하여 폴더의 모든 파일을 탐색합니다.

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

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

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

<code><span><span><?php</span><span>$path</span> = dirname(<span>__FILE__</span>);
<span>$result</span> = traversing(<span>$path</span>);
print_r(<span>$result</span>);

<span><span>function</span><span>traversing</span><span>(<span>$path</span>)</span>{</span><span>$result</span> = <span>array</span>();
    <span>if</span>(<span>$handle</span> = opendir(<span>$path</span>)){
        <span>while</span>(<span>$file</span>=readdir(<span>$handle</span>)){
            <span>if</span>(<span>$file</span>!=<span>'.'</span> && <span>$file</span>!=<span>'..'</span>){
                <span>if</span>(strtolower(substr(<span>$file</span>, -<span>4</span>))==<span>'.php'</span>){
                    array_push(<span>$result</span>, <span>$file</span>);
                }
            }
        }
    }
    <span>return</span><span>$result</span>;
}
<span>?></span></span></code>

사용하는 경우glob 메소드는

<code><span><span><?php</span><span>$path</span> = dirname(<span>__FILE__</span>);
<span>$result</span> = glob(<span>$path</span>.<span>'/*.php'</span>);
print_r(<span>$result</span>);
<span>?></span></span></code>

을 순회하여 코드를 단순화할 수 있습니다. glob은 path 검색 결과의 경로를 반환합니다(예: path='/). home/ fdipzone', 위의 예는

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

을 반환합니다. 이는 opendir 및 readdir이 반환한 결과와 다릅니다.

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

<code>array <span>glob</span> ( string <span>$pattern</span> [, <span>int</span><span>$flags</span> = <span>0</span> ] )</code>

glob() 이 함수는 일반 쉘에서 사용하는 규칙과 유사하게 libc glob() 함수에서 사용하는 규칙에 따라 pattern과 일치하는 모든 파일 경로를 검색합니다. 약어 확장이나 매개변수 대체는 수행되지 않습니다. Glob은 일반 경로 일치를 사용하는 데 강력합니다.

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

예: glob 메서드를 사용하여 지정된 폴더(하위 폴더 포함)를 탐색합니다.

<code><span><span><?php</span><span>$path</span> = dirname(<span>__FILE__</span>);
<span>$result</span> = <span>array</span>();
traversing(<span>$path</span>, <span>$result</span>);
print_r(<span>$result</span>);

<span><span>function</span><span>traversing</span><span>(<span>$path</span>, &<span>$result</span>)</span>{</span><span>$curr</span> = glob(<span>$path</span>.<span>'/*'</span>);
    <span>if</span>(<span>$curr</span>){
        <span>foreach</span>(<span>$curr</span><span>as</span><span>$f</span>){
            <span>if</span>(is_dir(<span>$f</span>)){
                array_push(<span>$result</span>, <span>$f</span>);
                traversing(<span>$f</span>, <span>$result</span>);
            }<span>elseif</span>(strtolower(substr(<span>$f</span>, -<span>4</span>))==<span>'.php'</span>){
                array_push(<span>$result</span>, <span>$f</span>);
            }
        }
    }
}
<span>?></span></span></code>
저작권 표시: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

위 내용은 내용을 포함하여 폴더의 모든 파일을 탐색하기 위한 glob 메소드 사용을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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