[PHP 고급] PHP 파일 다루기
fopen() 함수는 PHP에서 파일을 여는데 사용됩니다.
파일 열기
fopen() 함수는 PHP에서 파일을 여는데 사용됩니다.
이 함수의 첫번째 파라미터(매개변수)는 열려는 파일 이름을 넣으면되고, 두번째 파라미터(매개변수)에는 파일을 열때
어떤 모드(mode)로 열어야 하는지 지정해주면 됩니다. ^^...
<html> <body> <?php $file=fopen("welcome.txt","r"); ?> </body> </html> |
파일은 아마도 다음중 하나의 모드로 열어야 겠지요? :
모드(mode) | 설명 |
---|---|
r | 오직 읽기(Read Only)만 합니다. 파일의 처음부분에서 시작합니다. |
r+ | 읽기/쓰기(Read/Write) 모드. 파일의 처음부분에서 시작합니다. |
w | 오직 쓰기(Write Only)만 합니다. 파일을 열고 내용을 초기화 합니다; 혹은 파일이 존재하지 않으면 새 파일을 하나 만듭니다. |
w+ | 읽기/쓰기(Read/Write) 모드. 파일을 열고 내용을 초기화 합니다; 혹은 파일이 존재하지 않으면 새 파일을 하나 만듭니다. |
a | 추가모드(Append). 파일을 열고, 파일의 끝부분에 씁니다. 혹은 파일이 존재하지 않으면 새 파일을 만듭니다. |
a+ | 읽기/추가모드(Read/Append). 파일의 끝에 씀으로서 파일 내용을 보존합니다. |
x | 오직 쓰기(Write only)만 합니다. 새 파일을 만듭니다. 파일이 이미 존재하면 FALSE와 오류를 반환합니다. |
x+ | 읽기/쓰기 모드(Read/Write). 새 파일을 만듭니다. 파일이 이미 존재하면 FALSE와 오류를 반환합니다. |
참고: fopen() 함수가 파일을 열수 없을때는, 0 (false)를 반환합니다.
예제
아래 예제는 fopen()이 지정된 파일을 열수 없을때 지정한 메시지를 생성합니다:
<html> <body> <?php $file=fopen("welcome.txt","r") or exit("Unable to open file!"); </body> </html> |
파일 닫기
fclose() 함수는 열린 파일을 닫기 위해서 사용합니다:
<?php $file = fopen("test.txt","r"); //some code to be executed fclose($file); ?> |
파일의 끝부분인지(End-Of-File, EOF) 확인하기
feof() 함수는 파일의 끝부분에 도달했는지(end-of-file, EOF) 체크하는 함수입니다.
feof() 함수는 특히 길이를 알 수 없는 데이터를 루프(looping, 반복문)돌때 매우 유용합니다.
참고: w,a,x 모드로 열린 파일로부터는 읽을 수 없다는 사실을 꼭 기억하세요!
if (feof($file)) echo "End of file"; |
한줄씩 파일 읽어들이기
fgets() 함수는 파일로부터 하나의 줄(single line)을 읽어들일때 사용됩니다.
참고: 이 함수를 호출하고 나면, 파일 포인터는 다음줄로 옮겨집니다. 여기서 파일 포인터란, 파일을 조작할때, 파일의 조작이 가해지는 지점, 위치를 말합니다.
예제
아래 예제는 파일의 끝부분에 도달할때까지 파일을 한줄 한줄씩 읽어들입니다:
<?php $file = fopen("welcome.txt", "r") or exit("Unable to open file!"); //끝부분에 도달할때까지 읽어들인줄을 출력. while(!feof($file)) { echo fgets($file). "<br />"; } fclose($file); ?> |
한글자씩 읽어들이기
fgetc() 함수는 파일로부터 한 글자씩(single character) 읽어들이는데 사용됩니다.
참고: 이 함수를 호출하고 나면, 파일 포인턴느 다음 글자로 옮겨집니다. 여기서 파일 포인터란, 파일을 조작할때, 파일의 조작이 가해지는 지점, 위치를 말합니다.
예제
아래 예제는 파일의 끝부분에 도달할때까지 파일을 한글자 한글자씩 읽어들입니다:
<?php $file=fopen("welcome.txt","r") or exit("Unable to open file!"); while (!feof($file)) { echo fgetc($file); } fclose($file); ?> |
Sirjhswin