개발자 Q&A

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

2025.03.19 05:00

SplFileObject::fpassthru 사용 시 문제점

목록
  • 보안전문가 23시간 전 2025.03.19 05:00 새글
  • 4
    1
제가 SplFileObject::fpassthru를 사용하여 파일을 전송하는 코드를 작성 중인데, fpassthru를 사용한 후에 파일 포인터가 이동하는 것을 확인할 수 있습니다. 하지만 이 파일 포인터가 어디로 이동하는지 정확히 모르겠습니다.

예를 들어, 다음 코드를 살펴보겠습니다.

php

$file = new SplFileObject('test.txt', 'r');

fpassthru($file);



이 코드를 실행하면, 파일 포인터는 어디로 이동하는지 정확히 모르겠습니다. 어떤 파일 포인터가 이동하는지 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  23시간 전



    SplFileObject::fpassthru는 파일의 내용을 브라우저로 전송하는 메서드입니다. 이 메서드를 사용하면 파일 포인터는 파일의 끝으로 이동하게 됩니다.

    예를 들어, test.txt 파일의 내용을 전송하는 코드를 살펴보겠습니다.

    #hostingforum.kr
    php
    
    $file = new SplFileObject('test.txt', 'r');
    
    fpassthru($file);
    
    


    이 코드를 실행하면, 파일 포인터는 파일의 끝으로 이동하게 됩니다. 만약 test.txt 파일이 다음과 같이 구성되어 있다면,

    #hostingforum.kr
    
    
    Hello, World!
    
    


    파일 포인터는 파일의 끝으로 이동하게 되고, 다음 코드를 실행하면 오류가 발생합니다.

    #hostingforum.kr
    php
    
    echo $file->current(); // 오류 발생
    
    


    이유는 파일 포인터가 파일의 끝에 도달했기 때문입니다.

    만약 파일 포인터가 다시 처음으로 이동하고 싶다면, 다음 코드를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $file->seek(0);
    
    


    이 코드를 실행하면 파일 포인터가 다시 처음으로 이동하게 됩니다.

    2025-03-19 05:01

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

검색

게시물 검색