fpassthru
(PHP 4, PHP 5)
fpassthru — Imprime todo os dados restantes de um ponteiro de arquivo
Descrição
Lê até o fim do arquivo (EOF) do ponteiro de arquivo dado e imprime os resultados para a buffer de saÃda.
Se um error ocorrer, a função fpassthru() retorna FALSE. No sucesso, fpassthru() retorna o número de caracteres lidos do handle e passado para a exibição.
O ponteiro de arquivo tem que ser válido e apontar para um arquivo aberto com sucesso por fopen(), popen() ou fsockopen(). Você pode precisar chamar rewind() para reiniciar o ponteiro do arquivo para o inÃcio do arquivo caso você já tenha escrito dados no arquivo. O arquivo é fechado quando fpassthru() acaba de ler (deixando handle sem utilidade).
Se você somente quiser jogar o conteúdo de um arquivo para o buffer de saÃda, sem primeiro modificar ou procurar por um detalhe qualquer, você pode querer usar a função readfile(), que vai economizar uma chamada a função fopen().
Nota: Quando utilizando fpassthru() em um arquivo binário em sistemas Windows, você precisa verificar se abriu o arquivo em modo binário, acrescentando um b no modo informado na chamada de fopen().
Você é encorajado a utilizar o modo b quando trabalhando com arquivos binários, mesmo que seu sistema não requira isso, de forma que seus scripts se tornem mais portáveis.
Example#1 Using fpassthru() with binary files
<?php
// abre o arquivo em modo binário
$name = ".\public\dev\img\ok.png";
$fp = fopen($name, 'rb');
// envia os headers
header("Content-Type: image/png");
header("Content-Length: ".filesize($name));
// manda a imagem e pára o script
fpassthru($fp);
exit;
?>
Veja também readfile(), fopen(), popen() e fsockopen()