- 파일 열기(모드 지정: 읽기 / 쓰기)
- fopen() 함수의 제1인수에는 파일명을, 제2인수에는 '읽기/쓰기' 모드를 지정하고 파일을 연다
모드 | 읽기/쓰기 | 파일이 없는 경우 | 파일이 있는 경우 | 파일 포인터 |
---|---|---|---|---|
r | 읽기만 | 오류 | 열기 | 맨 앞 |
r+ | 읽기/쓰기 | 오류 | 열기 | 맨 앞 |
w | 쓰기만 | 새로 작성 | 파일 크기를 0으로 지정하고 열기 | 맨 앞 |
w+ | 쓰기/읽기 | 새로 작성 | 파일 크기를 0으로 지정하고 열기 | 맨 앞 |
a | 쓰기만 | 새로 작성 | 열기 | 맨 앞 |
a+ | 쓰기/읽기 | 새로 작성 | 열기 | 맨 앞 |
x | 쓰기만 | 새로 작성 | 오류 | 맨 앞 |
x+ | 쓰기/읽기 | 새로 작성 | 오류 | 맨 앞 |
c | 쓰기만 | 새로 작성 | 열기 | 맨 앞 |
c+ | 쓰기/읽기 | 새로 작성 | 열기 | 맨 앞 |
- 파일 잠금
- 파일을 이용하는 경우에 동시에 액세스 되는 것을 고려해서 읽거올 때 다른 사람이 기록하지 않도록 해야한다.
- fopen() 함수에서 파일을 열고 flock() 함수를 사용하여 공유 잠금 또는 독점 잠금을 진행한다.
제1인수의 설정값 | 기능 |
---|---|
LOCK_SH | 공유 잠금(독점 잠금만 차단 -> 쓰기만 차단) |
LOCK_EX | 독점 잠금(다른 잠금을 모두 차단 -> 읽기/쓰기 모두 차단) |
LOCK_UN | 잠금 해제 |
LOCK_NB | 잠겨있는 경우 false를 반환(Windows는 지원 안함) |
- 파일 읽기/쓰기
- 파일의 읽기 쓰기를 다루는 함수
- 읽기
- fgets() - 한줄을 가져옴
- fgetc() - 한 개의 문자를 가져옴
- fgetcsv() - CSV 형식의 파일에서 한 줄을 가져오고 배열에 저장
- fgetss() - HTML 태그를 제거하고 한 줄을 가져옴
- fread() - 바이너리 안전(binary-safe) 읽기
- fscanf() - 포맷을 근거로 해서 파일에서의 입력을 처리
- 쓰기
- fwrite() - 바이너리 안전(binary-safe) 쓰기
- fputs() - fwrite() 함수의 별칭(alias)
- fflush() - 버퍼링된 출력을 비움
- fputcsv() - 행을 CSV 형식으로 씀(PHP 5.1이상)
- fpassthru() - 모든 데이터를 출력
- 파일 포인터
- ftell() - 현재 위치를 확인함
- rewind() - 맨 앞으로 되돌림
- fseek() - 이동함
- feof() - 끝에 도달했는지 확인
- 파일 닫기
- fclose() 함수를 사용하여 파일을 닫음
- 다른 방법으로 파일 다루기
- fopen() 함수에서 명시적으로 파일을 열지 않아도 파일의 읽기와 쓰기가 가능한 함수가 있음
- file() - 파일 전체를 읽고 배열에 저장함
- file_get_contents() - 파일의 내용을 모두 읽어 문자열로 가져옴
- file_put_contents() - 파일에 문자열을 입력함, 제3인수로 추가 기록/독점 잠금 등을 지정할 수 있음
- readfile() - 파일을 표준 출력함
댓글 없음:
댓글 쓰기