array glob ( string $pattern [, int $flags= 0 ] )
(PHP 4 >= 4.3.0, PHP 5)

이 함수는 pattern에 매칭 되는 파일(또는 디렉토리)를 찾을 수 있으며 pattern에 *와 ?를 사용할 수 있습니다.

패 턴 설 명
* 매칭되는 모든 문자를 찾음
? 매칭되는 임의의 문자 1개를 찾음
{a,b,c} 다중 패턴에 매칭되는 문자를 찾음

$flags 인자에 다음 상수를 함께 사용할 수 있습니다.

상 수 설 명
GLOB_ONLYDIR 주어진 패턴에 매칭되는 폴더만 찾음
GLOB_MARK 주어진 패턴에 매칭되는 폴더, 파일을 찾으며, 폴더는 끝에 역슬레쉬(\)가 붙음
GLOB_BRACE 주어진 다중 패턴에 매칭되는 폴더, 파일을 찾음.
Ex.) {a,b,c}
GLOB_NOSORT 주어진 패턴에 매칭되는 폴더, 파일을 찾고, 정렬하지 않은 목록을 반환함

<?php
 // .로 시작하는 파일(또는 폴더)을 찾습니다.
 $j = 1;
 foreach(glob(".*") as $value){
     echo "${j}) $value<br/>";
     $j++;
 }

 /*
 결과:
 1) .
 2) ..
 3) .htaccess
 */


 // 확장자 .php파일을 찾습니다.
 $j = 1;
 foreach(glob("*.php") as $value){
     echo "${j}. $value<br/>";
     $j++;
 }
 /*
 결과:
 1. PHPTelnet.php
 2. index.php
 3. test.php
 4. xmlrpc.php
 */


 $j = 1;
 foreach(glob("k*.htm?") as $value){
     echo "${j}. $value<br/>";
     $j++;
 }
 /*
 결과:
 1. kara.html
 2. keight.htmp
 2. keight.htms
 */

 $j = 1;
 foreach(glob('my/*/dir/*.php') as $value){
     echo "${j}. $value<br/>";
     $j++;
 }
 /*
 결과:
 my/1/dir/xyz.php
 my/bar/dir/bar.php
 my/bar/dir/foo.php 
 */
 ?>

GLOB_ONLYDIR 상수를 사용한 결과입니다.

<?php
 // 모든 문자를 포함하는 폴더를 찾습니다.
 $j = 1;
 foreach(glob("*",GLOB_ONLYDIR) as $value){
     echo "${j}. $value<br/>";
     $j++;
 }

 /*
 결과:
 1. 1212038247-PHPDebug-V1.1.0[1]
 2. 6694-notftp-1.2.1[1]
 3. File_Archive
 4. html_parse
 5. mail
 6. nbuilder11.6
 7. php souse
 8. rar
 9. rb
 */


 // r로 시작하는 폴더를 찾습니다.
 $j = 1;
 foreach(glob("r*",GLOB_ONLYDIR) as $value){
     echo "${j}. $value<br/>";
     $j++;
 }
 /*결과:
 1. rar
 1. rb
 */
 ?>

GLOB_MARK 상수를 사용한 결과입니다.

<?php
 // r로 시작하는 파일, 폴더를 찾습니다. 폴더는 끝에 \가 붙습니다.
 $j = 1;
 foreach(glob("r*",GLOB_MARK) as $value){
     echo "${j}. $value<br/>";
     $j++;
 }

 /*
 결과:
 1. rar\
 2. rb\
 3. rdmininy\
 4. readme.html
 5. rss.gif
 */
 ?>

다음은 GLOB_BRACE 상수의 예제입니다.

<?php
 // 확장자 .php, .html, .txt인 파일을 찾습니다.
 $j = 1;
 foreach(glob("{*.php,*.html,*.txt}",GLOB_BRACE) as $value){
     echo "${j}. $value<br/>";
     $j++;
 }
 ?>

0 댓글