파일을 읽어 오기 위한 함수로는 file함수, fread함수, fgets함수가 있습니다. 이 함수의 역할은 다음 표를 참고할 수 있습니다.

함 수 설 명
file 파일 전체를 읽어 배열로 반환합니다.
fread 한 줄(또는 전체)를 바이너리로 읽어 옵니다.
fgets 파일 포인터에서 한 줄을 읽어 옵니다.
fgetc 파일 포인터에서 한 문자씩 읽어 옵니다.
fgetss 파일 포인터에서 한 줄을 읽어서 Html, Php 태그를 제거합니다.
fgetcsv 파일의 현재 위치에서 CSV 필드로 된 줄을 읽어 와서 파싱합니다.


array file ( string $filename [, int $flags= 0 [, resource $context ]] )
(PHP 4, PHP 5)

$flags 인자에는 다음 상수가 올 수 있습니다.

상 수 설 명
FILE_BINARY 바이너리로 읽어 옵니다.
(PHP 5.2.7부터)
FILE_TEXT UTF-8 인코딩으로 읽어 옵니다.
(PHP 5.2.7부터)
FILE_IGNORE_NEW_LINES 개행 처리되지 않은 문자를 반환합니다.
FILE_SKIP_EMPTY_LINES

<?php
 $arr = file('test.txt');
 foreach($arr as $v){
      echo $v;
 }
 ?>

<?php
 // 비어 있는 라인이나 개행처리 되지 않은 값을 반환받습니다.
 $arr = file('test.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
 foreach($arr as $v){
      echo $v;
 }
 ?>

<?php
 // 바이너리로 읽어 옵니다.
 $arr = file('test.txt', FILE_BINARY);
 foreach($arr as $v){
      echo $v;
 }
 ?>

fread 함수를 사용하기 위해서는 반드시 파일을 열고, 읽고, 닫아 주어야 합니다.

<?php
 $filename = 'test.txt';
 $fp = fopen($filename, 'r');  // 열기
 // filesize로 파일크기를 읽어들여 그 크기만큼 작성합니다.
 $arr = fread($fp, filesize($filename)); // 읽기
 echo $arr;
 fclose($fp); // 닫기
 ?>


string fgetc ( resource $handle )
(PHP 4, PHP 5)

fgetc 함수는 한 문자씩 읽어 반환하고, 파일의 끝부분까지 포인터의 포지션을 1만큼 증가시킵니다.

<?php
 /*
  test.txt
  habony 함수
 */
 $filename = 'test.txt';
 $fp = fopen($filename, 'r');
 if ($fp) {
      while (false !== ($char = fgetc($fp))) {
            echo $char."\n";
      }
 }
 fclose($fp);

 /*
 결과:
 h
 a
 b
 o
 n
 y
 함
 수
 */
 ?>


string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )
(PHP 4, PHP 5)

fgetss 함수 사용하는 방법은 다음 예제를 참고합니다.

<?php
 /*
 test.txt
 <html><body>
 <p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
 */

 $handle = fopen("test.txt", "r");
 if ($handle) {
    while (!feof($handle)) {
        $buffer = fgetss($handle, 1024);
        echo $buffer;
    }
    fclose($handle);
 }

 /*
 결과:
 Welcome! Today is the  of .
 */
 ?>

0 댓글