개발자 Q&A

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

2025.07.04 02:35

SplFileObject::fgets() 함수 사용시 질문

목록
  • 코드정령 15일 전 2025.07.04 02:35
  • 66
    1
SplFileObject::fgets() 함수를 사용하여 파일의 내용을 읽어오려고 하는데, 이 함수의 반환값이 bool 타입인 것 같습니다.

이 bool 타입의 반환값은 true/false로 반환되는데, 이 값을 어떻게 해석하여 파일의 내용을 제대로 읽어올 수 있는지 알려주실 수 있을까요?

또한, 이 함수를 사용하여 특정 라인에 해당하는 문자열을 읽어오려면 어떻게 해야할까요?

예를 들어, 파일의 라인에 "Hello World"가 있다고 가정할 때, 이 라인을 읽어오기 위해 SplFileObject::fgets() 함수를 어떻게 사용해야할까요?

또한, 이 함수가 파일의 끝에 도달했을 때 어떻게 동작하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  15일 전



    SplFileObject::fgets() 함수는 파일의 내용을 라인 단위로 읽어옵니다. 이 함수의 반환값은 bool 타입으로, true가 반환되면 읽어온 라인이 존재하고 false가 반환되면 읽어온 라인이 존재하지 않는다는 것을 의미합니다.

    파일의 내용을 제대로 읽어올 수 있는 방법은 다음과 같습니다.

    1. 읽어온 라인이 존재하는지 확인하여, true이면 읽어온 라인을 사용하고 false이면 다음 라인을 읽어옵니다.
    2. 읽어온 라인이 존재하지 않으면, 파일의 끝에 도달한 것입니다.

    특정 라인에 해당하는 문자열을 읽어오려면, 다음과 같은 방법을 사용할 수 있습니다.

    1. 파일을 읽어오면서 라인 번호를 함께 저장합니다.
    2. 읽어온 라인이 특정 문자열과 일치하는지 확인합니다.
    3. 일치하는 라인을 찾으면, 해당 라인을 사용합니다.

    예를 들어, 파일의 라인에 "Hello World"가 있다고 가정할 때, 다음과 같이 SplFileObject::fgets() 함수를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $file = new SplFileObject('example.txt');
    
    while (!$file->eof()) {
    
        $line = $file->fgets();
    
        if (strpos($line, 'Hello World') !== false) {
    
            echo $line . "n";
    
            break;
    
        }
    
    }
    
    


    이 함수가 파일의 끝에 도달했을 때, false가 반환되어 while 루프에서 종료됩니다.

    2025-07-04 02:36

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

검색

게시물 검색