fpassthru 함수

(PHP 4, PHP 5, PHP 7, PHP 8)

fpassthru — 파일 포인터에 남아 있는 모든 데이터 출력


설명

fpassthru(resource $stream): int

현재 위치에서 지정된 파일 포인터의 EOF를 읽고 결과를 출력 버퍼에 씁니다.

파일에 이미 데이터를 쓴 경우 rewind()를 호출하여 파일 포인터를 파일의 시작 부분으로 재설정해야 할 수도 있습니다.

파일의 내용을 먼저 수정하거나 특정 오프셋을 찾지 않고 출력 버퍼에 덤프하려는 경우 fopen() 호출을 저장하는 readfile()을 사용할 수 있습니다.


매개변수

stream
파일 포인터는 유효해야 하며 fopen() 또는 fsockopen()에 의해 성공적으로 열린 파일(그리고 fclose()에 의해 아직 닫히지 않은 파일)을 가리켜야 합니다.

반환 값

stream에서 읽고 출력으로 전달된 문자 수를 반환합니다.


Examples

예제 #1 바이너리 파일에 fpassthru() 사용

                  
<?php

// open the file in a binary mode
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// send the right headers
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// dump the picture and stop the script
fpassthru($fp);
exit;

?>
                  
                

노트

메모:

Windows 시스템의 이진 파일에서 fpassthru()를 사용할 때 fopen() 호출에 사용된 모드에 a b를 추가하여 이진 모드에서 파일을 열어야 합니다.

시스템에서 필요하지 않더라도 바이너리 파일을 처리할 때 b 플래그를 사용하는 것이 좋습니다. 그러면 스크립트가 더 이식성 있게 될 것입니다.


기타

  • readfile() - 파일을 출력
  • fopen() - 파일 또는 URL을 엽니다.
  • popen() - 프로세스 파일 포인터를 엽니다.
  • fsockopen() - 인터넷 또는 Unix 도메인 소켓 연결 열기