1. 파일핸들에 의한 파일 처리 함수
ㅇ 파일 오픈/닫기
- 형식
. 파일 오픈 : 파일핸들 = fopen("파일명","파일 모드");
. 파일 닫음 : fclose(파일핸들);
- 매개변수
. 파일명 : 파일명에, 통신 프로토콜(ftp://, http://)도 명시 가능
. 파일 모드
.. r : 읽기 전용, r+ : 읽거나 쓰기
.. w : 쓰기 전용, w+ : 읽거나 쓰기 (이미 있으면 덮어씀, 없으면 생성)
.. x : 안전 쓰기, x+ : 안전 읽거나 쓰기 (이미 있으면 false 반환)
.. a : 끝에 추가, a+ : 끝에서 읽거나 추가 (없으면 생성, 있으면 오픈)
.. c : 처음에 추가, c+ : 처음에서 읽거나 추가 (없으면 생성, 있으면 오픈)
.. b : 바이너리 모드 (default), t : 텍스트 모드
.. + : 버퍼에서 읽기/쓰기 모두 가능
. [참고] 호환성을 위해, rb, ab(a+b), wb 처럼 바이너리 모드로 사용 권장
ㅇ 파일핸들에 의한 읽기/쓰기
- fread(파일핸들) : 파일의 내용 읽기
- fwrite(파일핸들) : 파일에 내용 쓰기
ㅇ 파일핸들에 의해 한줄씩 읽고 파일끝이면 멈춤
- fgets(파일핸들) : 한 줄씩 읽기
. 파일 내용을 한줄씩 읽고 문자열(개행문자 포함)로 반환
. 현 위치는 다음 줄 처음에 둠
- feof(파일핸들) : 파일 끝 여부
. 파일 핸들이 파일 끝을 지나면 True 반환
* 例) while( (! feof(파일핸들)) && ($line = fgets(파일핸들)) { }
ㅇ 파일핸들에 의한 파일 내부 이동
- rewind(파일핸들) : 파일 맨 앞으로 파일핸들 이동
- fseek(파일핸들,offset) : 파일 특정 위치로 이동
- ftell(파일핸들) : 파일핸들 현재 위치를 바이트 값으로 반환
2. 파일명에 의한 파일 처리 함수
ㅇ 파일을 한번에 읽기/쓰기
- file(파일명)
. 주어진 파일에서 각 줄(개행문자 포함) 마다 배열로 담아 반환
- readfile(파일명)
. 주어진 파일 내용을 모두 한번에 웹브라우저로 출력
- 문자열 = file_get_contents(파일명 또는 URL)
. 주어진 파일명 또는 URL을 전달받고, 전체 파일 또는 웹페이지 내용을 문자열로 반환
- file_put_contents(파일명,문자열)
. 전달받은 문자열을 주어진 파일명으로 파일로 출력
ㅇ 파일 크기
- filesize(파일명)
. 파일 크기를 바이트 값으로 반환
ㅇ 파일 복사/삭제
- copy(원본 파일명,복사 파일명)
- unlink(삭제 파일명)
ㅇ 파일 시간
- int filemtime ( string $filename ) : 파일 수정 시간
- int fileatime ( string $filename ) : 파일 접근 시간
* 위 두 함수 반환값은, Unix Timestamp 임
. 이를 MySQL 등에 저장할 때는, => date('Y-m-d H:i:s', $timestamp)
- bool touch ( string $filename [, int $time = time() [, int $atime ]] )
: 해당 파일에 현재 시간 기록
3. 디렉토리(폴더) 처리 함수
ㅇ 디렉토리(폴더) 처리
- 생성 : mkdir()
- 제거 : rmdir()
- 열기 : 디렉토리 핸들 = opendir()
- 읽기 : readdir(디렉토리 핸들)
- 닫기 : closedir(디렉토리 핸들)
ㅇ 디렉토리(폴더) 위치조정
- chdir(경로)
- chroot()
4. 파일/디렉토리(폴더)의 정보 확인 함수
※ ☞ PHP 파일시스템 정보 확인 함수 참조
5. [참고사항]
ㅇ 경로 구분자
- / 만 가능 : Unix/Linux
- \ 또는 / 모두 가능 : 윈도우즈
* 따라서, 경로 구분자를 / 로 쓰는 것이 좋음