feof 함수

(PHP 4, PHP 5, PHP 7, PHP 8)

feof — 파일 포인터에서 파일 끝 테스트


설명

feof(resource $stream): bool

파일 포인터에서 파일 끝을 테스트합니다.


매개변수

stream
파일 포인터는 유효해야 하며 fopen() 또는 fsockopen()에 의해 성공적으로 열린 파일을 가리켜야 합니다(아직 fclose()에 의해 닫히지 않음).

반환 값

파일 포인터가 EOF에 있거나 오류가 발생하면(소켓 시간 초과 포함) true를 반환합니다. 그렇지 않으면 false를 반환합니다.


메모

경고 fsockopen()에 의해 열린 연결이 서버에 의해 닫히지 않은 경우 feof()가 중단됩니다. 이 문제를 해결하려면 아래 예를 참조하세요.

예제 #1 feof()로 시간 초과 처리

                    
  <?php
  function safe_feof($fp, &$start = NULL) {
   $start = microtime(true);

   return feof($fp);
  }

  /* Assuming $fp is previously opened by fsockopen() */

  $start = NULL;
  $timeout = ini_get('default_socket_timeout');

  while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
  {
   /* Handle */
  }
  ?>
                    
                  

경고 전달된 파일 포인터가 유효하지 않으면 feof()true를 반환하지 못하기 때문에 무한 루프가 발생할 수 있습니다.

예제 #2 잘못된 파일 포인터가 있는 feof() 예제

                    
<?php
// if file can not be read or doesn't exist fopen function returns FALSE
$file = @fopen("no_such_file", "r");

// FALSE from fopen will issue warning and result in infinite loop here
while (!feof($file)) {
}

fclose($file);
?>