본문 바로가기

컴퓨터/언어,프로그래밍

[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

제주삼다수, 2L,... 오뚜기 진라면 매운... 상하목장 유기농 흰... 남양 프렌치카페 카... 고려인삼유통 홍삼 ... 종근당건강 오메가3... 요이치 카링 유무선...