[PHP] 디렉토리 제어(Directories)

Seo Joonsoo·2022년 6월 21일
0

php

목록 보기
14/23

일반적으로 DIR이나 FILE 등을 활용해 현재 위치를 구해 경로를 제어하지만

실제 터미널과 같이 파일 시스템에서의 디렉토리 제어가 필요한 경우들이 있습니다.

opendir 등은 resource인 open directory handle를 반환합니다.


chdir(string $directory): bool

PHP의 현재 디렉토리를 변경합니다.

echo getcwd() . "\n";
chdir('public_html');
echo getcwd() . "\n";
/* result to:
/home/paric
/home/paric/public_html
*/

chroot(string $directory): bool

루트 디렉토리를 변경하고자 할 때 사용되는 함수입니다. 현재 작업 디렉토리를 "/"로 변경합니다.

이 기능은 GNU 및 BSD 시스템에서만 사용할 수 있으며 CLI, CGI 또는 Embed SAPI를 사용할 때만 사용할 수 있습니다. ※ 루트 권한이 필요합니다.

이 함수를 호출해도 DIRFILE매직 상수의 값은 변경되지 않습니다.

  • Windows에서 구현되지 않습니다.
  • ZTS(Zend Thread Safety)가 활성화된 PHP 인터프리터에서는 사용할 수 없습니다.
chroot("/path/to/your/chroot/");
echo getcwd();
/* result to :
/
*/

getcwd(): string|false

현재 작업 디렉토리를 가져옵니다.

PHP 인터프리터가 ZTS(Zend Thread Safety)가 활성화된 상태로 빌드된 경우 getcwd()가 반환하는 현재 작업 디렉터리는 운영 체제 인터페이스에서 반환된 디렉터리와 다를 수 있습니다.


scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, ?resource $context = null): array|false

지정된 경로 내에 있는 파일 및 디렉토리를 배열로 반환합니다.


opendir(string $directory, ?resource $context = null): resource|false

closedir() , readdir() 및 rewinddir() 호출에서 사용할 디렉토리 핸들을 엽니다.


closedir(?resource $dir_handle = null): void

dir_handle로 표시된 디렉토리 스트림을 닫습니다. 스트림은 이전에 opendir() 에 의해 열려 있어야 합니다 .

$dir = "/etc/php5/";

// 디렉토리를 열고 디렉토리를 변수로 읽은 다음 닫습니다.
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $directory = readdir($dh);
        closedir($dh);
    }
}

readdir(?resource $dir_handle = null): string|false

디렉토리에서 다음 항목의 이름을 반환합니다. 항목은 파일 시스템에 저장된 순서대로 반환됩니다.

PHP8부터 $dir_handle은 nullalbe해 졌습니다. $dir_handle 값이 null일 경우opendir()에 의해 열린 마지막 링크로 가정됩니다.


rewinddir(?resource $dir_handle = null): void

dir_handle로 표시된 디렉토리 스트림을 디렉토리의 시작 부분으로 재설정합니다.

readdir()을 실행할 때 마다 커서가 옮겨지게되는데 이를 초기화하는 함수라 보면 됩니다.



Directories

미리 정의된 상수

디렉토리 — 디렉토리 클래스

  • Directory::close — 디렉토리 핸들 닫기
  • Directory::read — 디렉토리 핸들에서 항목 읽기
  • Directory::rewind — 디렉토리 핸들 되감기

디렉토리 기능

  • chdir — 디렉토리 변경
  • chroot — 루트 디렉토리 변경
  • Closedir — 디렉토리 핸들 닫기
  • dir — Directory 클래스의 인스턴스를 반환합니다.
  • getcwd — 현재 작업 디렉토리를 가져옵니다.
  • opendir — 디렉토리 핸들 열기
  • readdir — 디렉토리 핸들에서 항목 읽기
  • rewinddir — 디렉토리 핸들 되감기
  • scandir — 지정된 경로 내의 파일 및 디렉토리 나열
profile
여러분들 삶에 한 획을 더하고 싶습니다.

0개의 댓글