개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.19 18:43

SplFileObject::fgets 사용법에 대한 질문

목록
  • CDN광신도 3일 전 2025.04.19 18:43
  • 8
    1
제가 SplFileObject::fgets 함수를 사용하여 파일 내용을 읽어오려고 하는데, 파일의 첫 번째 줄을 읽을 때는 잘 읽어 오는데 두 번째 줄부터는 읽을 수 없다는 오류가 발생합니다. 이에 대한 원인을 모르겠습니다.

SplFileObject::fgets 함수를 사용하여 파일의 두 번째 줄부터 읽어 오는 방법은 무엇입니까?

    댓글목록

    profile_image
    나우호스팅  3일 전



    SplFileObject::fgets 함수는 파일의 한 줄을 읽어 오는 함수입니다. 그러나 이 함수는 파일에서 다음 줄을 읽기 전에 이전 줄을 끝내지 않는 한 다음 줄을 읽지 못합니다. 따라서, 파일의 첫 번째 줄을 읽은 후에 fgets 함수를 호출하면 두 번째 줄을 읽을 수 없습니다.

    이 문제를 해결하기 위해, file pointer를 file end로 옮겨야 합니다. SplFileObject::seek() 함수를 사용하여 현재 포인터 위치를 파일의 끝으로 옮기면 됩니다.

    다음은 예시입니다.

    #hostingforum.kr
    php
    
    $file = new SplFileObject('test.txt');
    
    $file->seek(PHP_INT_MAX);
    
    echo $file->fgets(); // 파일의 두 번째 줄을 읽습니다.
    
    
    
    // 또는
    
    $file->seek(0);
    
    $file->seek(2); // 두 번째 줄로 이동
    
    echo $file->fgets(); // 파일의 두 번째 줄을 읽습니다.
    
    
    
    // 또는
    
    $file->seek(0);
    
    while ($line = $file->fgets()) {
    
        if ($i == 1) {
    
            break;
    
        }
    
        $i++;
    
    }
    
    echo $file->fgets(); // 파일의 두 번째 줄을 읽습니다.
    
    
    
    

    2025-04-19 18:43

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 13,723건 / 61 페이지

검색

게시물 검색