파일 File Helper
파일헬퍼는 파일을 조작하는데 도움이되는 함수들을 제공합니다.
헬퍼로딩Loading this Helper
다음과같이 헬퍼를 로드합니다:
$this->load->helper('file');
다음 함수들이 사용가능 합니다:
read_file('path')
지정된 파일의 데이터를 리턴합니다 . 예:
$string = read_file('./path/to/file.php');
경로는 상대경로나 절대경로 모두 됩니다. 실패시FALSE 를 리턴합니다.
참고: 경로는 메인 index.php 파일로부터의 상대경로이며, 컨트롤러나 뷰 파일로부터의 상대경로는 아닙니다. CodeIgniter 는 프론트 컨트롤러를 사용하므로, 경로는 항상 메인 사이트 인덱스로부터의 상대경로입니다.
서버가 open_basedir 제한을 사용하고 있다면 이 함수는 작동하지 않을것입니다.
write_file('path', $data)
파일을 지정된 경로에 씁니다. 파일이 존재하지않을경우 파일을 생성합니다. 예:
$data = 'Some file data';
if ( ! write_file('./path/to/file.php', $data))
{
echo 'Unable to write the file';
}
else
{
echo 'File written!';
}
세번째 파라미터로 쓰기모드를 지정할 수 있습니다:
write_file('./path/to/file.php', $data, 'r+');
기본값은 wb입니다. PHP 사용자가이드 를 보시면 모드에대해 보다 많은 정보를 얻으실 수 있습니다.
참고: 이 함수를 이용해서 파일을 쓰려면 파일권한이 반드시 쓰기 가능한 상태로 설정되어야 합니다(666, 777, 등.). 만약 파일이 존재하지않는다면, 파일이 생성될 디렉토리의 권한이 쓰기 가능한 상태라야 합니다.
참고: 경로는 메인 index.php 파일로부터의 상대경로이며, 컨트롤러나 뷰 파일로부터의 상대경로는 아닙니다. CodeIgniter 는 프론트 컨트롤러를 사용하므로, 경로는 항상 메인 사이트 인덱스로부터의 상대경로입니다.
delete_files('path')
지정한 경로내의 모든 파일을 지웁니다. 예:
delete_files('./path/to/directory/');
두번째 파라미터가true로 설정되어 있으면, 포함하고 있는 모든 디렉토리 까지 삭제합니다. 예:
delete_files('./path/to/directory/', TRUE);
참고: 파일들이 쓰기 가능한 상태거나, 그 소유자가 시스템(system)이라야 삭제가 가능합니다.
get_filenames('path/to/directory/')
경로를 입력받아 그안에 있는 파일목록을 배열로 리턴합니다. 두번째 파라미터를 TRUE 로 설정하면 파일경로도 같이 붙습니다.
get_dir_file_info('path/to/directory/')
지정된 디렉토리를 읽은후 파일이름,파일명,날짜 그리고 권한 정보를 포함하는 배열을 만듦니다.이때 하위폴더가 있다면 그 폴더가 포함하는 파일정보도 가지고 옵니다.
get_file_info('path/to/file', $file_information)
파일경로가 주어지면, 파일명,경로,크기,수정된 날짜를 리턴합니다. 두번째 파라미터로 리턴받기를 원하는 정보가 무엇인지 설정할수 있습니다; 옵션은: name, server_path, size, date, readable, writable, executable, fileperms 입니다.파일이 없으면 FALSE 를 리턴합니다.
참고: "writable" 은 PHP 내장함수인is_writable() 를 사용합니다. 이함수는 IIS 웹서버환경에서는 알려진 이슈가 있습니다. PHP 내장함수 중 fileperms() 를 사용하는 fileperms을 대신 사용하는것을 권장합니다.
get_mime_by_extension('file')
파일 확장자를 config/mimes.php 에 기록된 마임타입(mime type )으로 변환합니다. 타입을 결정할수 없을경우 마임설정 파일을 열거나 FALSE 를 반환합니다.
$file = "somefile.png";
echo $file . ' is has a mime type of ' . get_mime_by_extension($file);
참고: 이 방법은 정확하게 마임타입을 식별하는 방법은 아닙니다.단지 편의를 위한것입니다. 보안이나 정확성이필요한 상황에서는 사용하지 않는것이 좋습니다.
symbolic_permissions($perms)
숫자로 권한을 입력받아서 표준 권한 표기법에 맞는 권한을 리턴합니다. fileperms() 함수가 리턴하는숫자를 사용하시면 됩니다.
echo symbolic_permissions(fileperms('./index.php'));
// -rw-r--r--
octal_permissions($perms)
숫자로 권한을 입력받아 3글자로 된 8진수 권한 표기법을 리턴합니다.fileperms() 함수가 리턴하는숫자를 사용하시면 됩니다.
echo octal_permissions(fileperms('./index.php'));
// 644