PHP에서 폴더 경로를 검색하려할때 glob 함수를 쓸 수 있습니다.
예를 들어, 아래와 같이 사용시
$files = glob("path/to/file/*");
//['path/to/file/1.txt','path/to/file/2.txt','path/to/file/3.txt']
- path
- to
- file
- 1.txt
- 2.txt
- 3.txt
- file
- to
위와 같은 문서 경로가 있을때 아래 내용을 배열로 반환합니다.
- path/to/file/1.txt
- path/to/file/2.txt
- path/to/file/3.txt
그런데 [ ] { } 같은 대괄호,중괄호 기호가 포함되어있다면 검색이 안되고 빈 배열이 반환되는 경우가 있습니다.
$files = glob("path/to/[file]/*"); // []
[ ] { } 를 이스캐이프 해줘야 사용이 가능한데 윈도우에서는 아래와 같이 이용가능합니다.
$path = preg_replace('~[\[?{]~','[$0]',$path);
$files = glob($path.'/*');
최종 변환 결과
$files = glob("path/to/[file]/*"); // []
$files = glob("path/to/[[]file]/*");
//['path/to/[file]/1.txt','path/to/[file]/2.txt','path/to/[file]/3.txt']
$files = glob("path/to/{file}/*"); // []
$files = glob("path/to/[{]file}/*");
//['path/to/{file}/1.txt','path/to/{file}/2.txt','path/to/{file}/3.txt']
조금 특이하게 변환을 하는데 윈도우 기반 PHP에서는 이렇게 변환을 한다.
Linux/Unix 에서는 \를 폴더 기호로 안쓰기 때문에 \로 간단히 치환가능합니다.
$files = glob("path/to/[file]/*"); // []
$files = glob("path/to/\[file\]/*");
//['path/to/[file]/1.txt','path/to/[file]/2.txt','path/to/[file]/3.txt']
$files = glob("path/to/{file}/*"); // []
$files = glob("path/to/\{file\}/*");
//['path/to/{file}/1.txt','path/to/{file}/2.txt','path/to/{file}/3.txt']
'웹 프로그래밍 > PHP' 카테고리의 다른 글
PHP8 JIT 업데이트후 차이 예상은? (2) | 2020.06.14 |
---|---|
PHP) 단축 URL 서비스 구축하기 (0) | 2020.05.29 |
PHP) cURL Async (PHP5+) (3) | 2020.05.25 |
PHP) 어제 날짜 구하기 (3) | 2020.01.17 |
PHP) Windows GUI 프로그램(*.exe) 실행하기 (0) | 2019.12.06 |
php) echo 보다 빠른 글 출력 (0) | 2019.06.07 |
php) include vs include_once (0) | 2019.06.07 |
php) rand() vs mt_rand() (0) | 2019.06.07 |
저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)
예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.
만약, 본문 공유를 원하신다면 링크 공유를 해주세요
저작권 정책 확인하기링크 공유하기