fpassthru() 함수는 열려 있는 파일을 EOF(파일 끝)까지 읽어 들인 후, 그 결과를 출력 버퍼에 기록하는 PHP 내장 함수입니다. 파일 포인터에서 읽어 들인 문자 수를 반환하며, 오류가 발생하면 FALSE를 반환합니다.
문법(Syntax)
fpassthru(file_pointer):
매개변수(Parameters)
file_pointer − fopen() 또는 fsockopen()으로 성공적으로 연 파일을 가리키는 파일 포인터여야 합니다. 단, fclose()로 아직 닫히지 않은 상태여야 합니다.
반환값(Return)
fpassthru() 함수는 파일 포인터에서 읽어 들인 문자 수를 반환합니다. 오류가 발생한 경우에는 FALSE를 반환합니다.
예제(Example)
<?php
$file_pointer = fopen("new.txt", "r");
fgets($file_pointer);
echo fpassthru($file_pointer);
fclose($file_pointer);
?>
위 예제에서는 먼저 new.txt 파일을 읽기 모드로 연 뒤, fgets()로 첫 줄을 건너뛰고 나머지 내용을 fpassthru()로 출력합니다. 실행 결과는 다음과 같으며, 출력된 문자 수는 22입니다.
출력(Output)
Demo text!!
This is it!22
참고 사항
fpassthru()는 파일 전체를 일일이 읽어 변수에 저장하지 않고 곧바로 출력하기 때문에, 이미지나 PDF 같은 바이너리 파일을 다운로드용으로 전송할 때 특히 유용합니다. 또한 파일 시작 지점부터 출력하려면 호출 전에 rewind()를 사용해 파일 포인터를 처음으로 되돌리면 됩니다.