[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

 

최종 수정일:
서지스윈

서지스윈

IT와 기술을 이해하고, 유용한 소프트웨어를 발견하도록 돕고 싶습니다. 윈도우(Windows), 맥(macOS), 리눅스(Linux), 스마트폰 앱, 웹 서비스, 기획 시리즈물까지. 더 많은 것을 발견하고, 더 많은 것을 해보세요.