
SplFileObject::eof() 함수는 파일의 끝을 확인하는 함수입니다. 이 함수를 호출하기 전에 file pointer가 파일의 끝에 도달했는지 확인하는 방법은 없습니다.
file pointer가 파일의 끝에 도달하면 다음 읽기 연산에서 EOF를 반환합니다.
예를 들어, 다음 코드는 다음과 같이 동작합니다.
#hostingforum.kr
php
$file = new SplFileObject('example.txt');
echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';
// 이 경우 파일의 끝이 아닙니다.가 출력됩니다.
$file->rewind();
echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';
// 이 경우 파일의 끝이 아닙니다.가 출력됩니다.
$file->seek(0); // 또는 $file->rewind();
echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';
// 이 경우 파일의 끝이 아닙니다.가 출력됩니다.
$file->seek(PHP_INT_MAX); // 또는 $file->eof();
echo $file->eof() ? '파일의 끝입니다.' : '파일의 끝이 아닙니다.';
// 이 경우 파일의 끝입니다.가 출력됩니다.
file pointer가 파일의 끝에 도달한 후 rewind() 함수를 호출하면 file pointer가 다시 파일의 처음으로 돌아갑니다.
그러나, rewind() 함수를 호출하기 전에 seek() 함수를 호출하면 file pointer가 원하는 위치로 이동할 수 있습니다.
따라서, file pointer가 파일의 끝에 도달했는지 정확하게 확인하려면 seek() 함수를 사용하여 파일의 처음으로 이동한 후 eof() 함수를 호출하는 것이 좋습니다.
2025-06-02 16:37