본문으로 바로가기

[PHP] 파일 입출력 fopen, fwrtie, fclose

category Helloworld!/PHP 2013. 10. 20. 00:26

php언어의 단점. 

디버깅하기가 어렵다. 매번 echo 찍어가며 에러찾기도 힘들고..

특히나 echo로 출력해서 확인 할 수 있는 페이지 같은 경우는 테스트를 어떻게 하지?


그럴 경우를 위해 pear log를 사용해보라고 권유받았지만 우선 파일 입출력으로 해결하는 방법부터 알아보자.

그냥 간단하게, 로컬에 txt파일을 생성해서 그곳에 에러 로그 찍히듯이 브라우저에 echo 찍을 내용을 파일에 입력하여 확인하는 것.


파일 입출력으로 사용되는 함수 중 딱 세개만 알면된다.

fopen("파일이름", "파일 입출력 속성") //파일을 열음 또는 생성
fwirte("파일이름", "입력할문자열") //파일에 내용 입력
fclose("파일이름") //열었던 파일을 종료


그리고 fopen에 파일 입출력 속성은 다음과 같다

r : 읽기 속성. 파일을 불러와서 시작부터 읽는다.

w (write) : 쓰기 속성. 파일의 내용을 지우고 불러온다. 파일이 존재하지 않으면 새로운 파일을 만든다.

a (append)  : 쓰기 속성. 파일의 끝부터 쓰기를 시작한다. 파일이 존재하지 않으면 새로운 파일을 만든다.

x : 쓰기 속성. 새로운 파일을 만든다. 파일이 이미 존재하면 error / return false

+ : 추가 (원래의 속성을 유지하면서 읽기/쓰기로 바꿈)

ex) r+ : 읽기/쓰기 속성. 파일을 불러와서 시작부터 읽는다.


파일 입출력 함수 예시는 다음과 같다.

$file = fopen("outputLog.txt","a+");

if(!$file) die("Cannot open the file.");

$inputTime = date("Y-m-d H:i:s");

$msg = "[{$inputTime}] ";
$msg .= "input test \n";

fwrite($file, $msg);

fclose($file);
이외에 다양한 파일 입출력 함수가 있는데 그건 다음 참고 사이트를 참고하자