Filesystem 헬퍼
디렉토리 헬퍼 파일에는 디렉토리 작업을 지원하는 기능이 있습니다.
헬퍼 로드
이 헬퍼는 다음 코드를 사용하여 로드됩니다.
<?php
helper('filesystem');
사용 가능한 함수
사용 가능한 함수는 다음과 같습니다.
- directory_map($sourceDir[, $directoryDepth = 0[, $hidden = false]])
- Parameters
$sourceDir (
string
) – 소스 디렉토리의 경로$directoryDepth (
int
) – 탐색할 디렉토리의 깊이 (0 = 완전 재귀, 1 = 현재 디렉토리 등)$hidden (
bool
) – 숨겨진 경로 포함 여부
- Returns
파일의 배열
- Return type
array
<?php $map = directory_map('./mydirectory/');
Note
경로는 index.php 파일을 기준으로 합니다.
디렉토리에 포함된 하위 폴더도 매핑됩니다. 재귀 깊이를 제어하려면 두 번째 매개 변수 (정수)를 사용하면됩니다. 깊이 1은 최상위 디렉토리만 매핑합니다.
<?php $map = directory_map('./mydirectory/', 1);
기본적으로 숨김 파일은 반환된 배열에 포함되지 않으며 숨김 디렉토리는 건너뜁니다. 이 동작을 재정의하려면 세 번째 매개 변수를 true(부울)로 설정할 수 있습니다.
<?php $map = directory_map('./mydirectory/', false, true);
각 폴더 이름은 배열 색인이며 포함된 파일은 숫자로 색인됩니다. 다음은 일반적인 배열의 예입니다.
Array ( [libraries] => Array ( [0] => benchmark.html [1] => config.html ["database/"] => Array ( [0] => query_builder.html [1] => binds.html [2] => configuration.html [3] => connecting.html [4] => examples.html [5] => fields.html [6] => index.html [7] => queries.html ) [2] => email.html [3] => file_uploading.html [4] => image_lib.html [5] => input.html [6] => language.html [7] => loader.html [8] => pagination.html [9] => uri.html ) )
결과가 없으면 빈 배열을 반환합니다.
- directory_mirror($original, $target[, $overwrite = true])
- Parameters
$original (
string
) – 원본 디렉터리$target (
string
) – 대상 디렉토리$overwrite (
bool
) – 충돌 시 개별 파일을 덮어쓸지 여부
원본 디렉터리의 파일 및 디렉터리를 대상 디렉터리로 재귀적으로 복사합니다. 즉, 내용을 “미러링” 합니다.
<?php try { directory_mirror($uploadedImages, FCPATH . 'images/'); } catch (Throwable $e) { echo 'Failed to export uploads!'; }
선택적으로 세 번째 매개 변수를 통해 덮어쓰기 동작을 변경할 수 있습니다.
- write_file($path, $data[, $mode = 'wb'])
- Parameters
$path (
string
) – 파일 경로$data (
string
) – 파일에 쓸 데이터$mode (
string
) –fopen()
모드
- Returns
쓰기에 성공하면 true, 오류가 발생하면 false
- Return type
bool
경로에 지정된 파일에 데이터를 씁니다. 파일이 존재하지 않으면 함수가 파일을 작성합니다.
<?php $data = 'Some file data'; if (! write_file('./path/to/file.php', $data)) { echo 'Unable to write the file'; } else { echo 'File written!'; }
세번째 파라미터를 통해 쓰기 모드를 선택적으로 설정할 수 있습니다
<?php write_file('./path/to/file.php', $data, 'r+');
기본 모드는 ‘wb’입니다. 모드 옵션에 대해서는 PHP 사용자 안내서를 참조하십시오.
Note
이 함수가 파일에 데이터를 쓰려면 쓰기 가능하도록 권한을 설정해야합니다. 파일이 존재하지 않으면 파일을 포함하는 디렉토리는 쓰기 가능해야합니다.
Note
경로는 컨트롤러나 뷰 파일이 아닌 사이트의 index.php 파일을 기준으로합니다. CodeIgniter는 프론트(front) 컨트롤러를 사용하므로 경로는 항상 사이트 index를 기준으로 합니다.
Note
이 기능은 파일에 쓰는 동안 파일에 대한 잠금(exclusive lock)을 획득합니다.
- delete_files($path[, $delDir = false[, $htdocs = false[, $hidden = false]]]])
- Parameters
$path (
string
) – 디렉토리 경로$delDir (
bool
) – 디렉토리 삭제 여부$htdocs (
bool
) – .htaccess 및 색인 페이지 파일 삭제를 건너 뛸지 여부$hidden (
bool
) – 숨김 파일 삭제 여부 (마침표(.)로 시작하는 파일)
- Returns
성공시 true, 오류 발생시 false
- Return type
bool
제공된 경로에 포함된 모든 파일을 삭제합니다.
<?php delete_files('./path/to/directory/');
두 번째 매개 변수가 true로 설정되면 제공된 루트 경로에 포함된 모든 디렉토리도 삭제됩니다.
<?php delete_files('./path/to/directory/', true);
Note
파일을 삭제하려면 시스템에서 파일을 쓸 수 있거나 소유해야합니다.
- get_filenames($sourceDir[, $includePath = false[, $hidden = false[, $includeDir = true]]])
- Parameters
$sourceDir (
string
) – 디렉토리 경로$includePath (
bool|null
) – 파일 이름의 일부로 경로를 포함할지 여부; 경로가 없을때false
,$sourceDir
인 경우null
, 전체 경로일때true
$hidden (
bool
) – 숨겨진 파일 포함 여부 (마침표(.)로 시작하는 파일)$includeDir (
bool
) – 배열 출력에 디렉토리를 포함할지 여부
- Returns
파일 이름의 배열
- Return type
array
서버 경로를 입력으로 사용하고 여기에 포함된 모든 파일의 이름이 포함된 배열을 반환합니다. 상대 경로의 경우 두 번째 매개 변수를 ‘relative’로 설정하거나, 전체 파일 경로를 비어 있지 않은 다른 값으로 설정하여 파일 이름에 선택적으로 파일 경로를 추가할 수 있습니다.
<?php $controllers = get_filenames(APPPATH . 'controllers/');
- get_dir_file_info($sourceDir[, $topLevelOnly = true])
- Parameters
$sourceDir (
string
) – 디렉토리 경로$topLevelOnly (
bool
) – 지정된 디렉토리의 하위 디렉토리 제외 여부
- Returns
제공된 디렉토리의 내용에 대한 정보를 포함하는 배열
- Return type
array
지정된 디렉토리를 읽고 파일 이름, 파일 크기, 날짜 및 권한을 포함하는 배열을 만듭니다. 지정된 경로에 포함된 하위 폴더는 두 번째 매개 변수를 false로 전달한 경우에만 읽힙니다. 이는 많은 주의를 기울여 하는 작업이 될 수 있기 때문입니다.
<?php $models_info = get_dir_file_info(APPPATH . 'models/');
- get_file_info($file[, $returnedValues = ['name', 'server_path', 'size', 'date']])
- Parameters
$file (
string
) – 파일 경로$returnedValues (
array|string
) – 배열 또는 쉼표로 구분된 문자열로 전달하기 위해 반환할 정보 유형
- Returns
지정된 파일에 대한 정보가 포함된 배열, 실패시 false
- Return type
array
파일 및 경로가 제공되면 파일의 name, path, size, date modified 정보 속성을 (선택적으로) 반환합니다. 두 번째 매개 변수를 사용하면 반환할 정보를 명시적으로 선언할 수 있습니다.
유효한
$returnedValues
옵션:name
,size
,date
,readable
,writeable
,executable
,fileperms
.
- symbolic_permissions($perms)
- Parameters
$perms (
int
) – 권한(Permission)
- Returns
심볼릭(Symbolic) 권한 문자열
- Return type
string
숫자 사용 권한(예:
fileperms()
에 의해 반환된)을 사용하여 파일 사용 권한의 표준 기호를 반환합니다.<?php echo symbolic_permissions(fileperms('./index.php')); // -rw-r--r--
- octal_permissions($perms)
- Parameters
$perms (
int
) – 권한
- Returns
8진수 권한 문자열
- Return type
string
숫자 사용 권한(예:
fileperms()
에 의해 반환된)을 사용하여 파일 권한의 8진수 표기법를 반환합니다.<?php echo octal_permissions(fileperms('./index.php')); // 644
- same_file($file1, $file2)
- Parameters
$file1 (
string
) – 첫 번째 파일의 경로$file2 (
string
) – 두 번째 파일의 경로
- Returns
두 파일의 해시가 동일한지 여부
- Return type
boolean
두 파일을 비교하여 동일한지 확인합니다.(MD5 해시 기준)
<?php echo same_file($newFile, $oldFile) ? 'Same!' : 'Different!';
- set_realpath($path[, $checkExistence = false])
- Parameters
$path (
string
) – 경로$checkExistence (
bool
) – 경로가 실제로 존재하는지 확인
- Returns
절대 경로
- Return type
string
이 기능은 심볼릭 링크나 상대 디렉터리 구조가 없는 서버 경로를 반환합니다. 경로를 확인할 수 없는 경우 선택적 두 번째 인수로 인해 오류가 트리거됩니다.
<?php $file = '/etc/php5/apache2/php.ini'; echo set_realpath($file); // Prints '/etc/php5/apache2/php.ini' $non_existent_file = '/path/to/non-exist-file.txt'; echo set_realpath($non_existent_file, true); // Shows an error, as the path cannot be resolved echo set_realpath($non_existent_file, false); // Prints '/path/to/non-exist-file.txt' $directory = '/etc/php5'; echo set_realpath($directory); // Prints '/etc/php5/' $non_existent_directory = '/path/to/nowhere'; echo set_realpath($non_existent_directory, true); // Shows an error, as the path cannot be resolved echo set_realpath($non_existent_directory, false); // Prints '/path/to/nowhere'