array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.fpassthru.php', 1 => 'fpassthru', ), 'up' => array ( 0 => 'ref.filesystem.php', 1 => 'Funções do sistema de arquivos', ), 'prev' => array ( 0 => 'function.fopen.php', 1 => 'fopen', ), 'next' => array ( 0 => 'function.fputcsv.php', 1 => 'fputcsv', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/filesystem/functions/fpassthru.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
fpassthru — Imprime todo os dados restantes de um ponteiro de arquivo
Lê até o fim do arquivo (EOF) do ponteiro de arquivo dado e imprime os resultados para a buffer de saída.
Pode ser necessário chamar rewind() para redefinir o ponteiro do arquivo para início do arquivo se dados já tiverem sido escritos no arquivo.
Se for desejado apenas descarregar o conteúdo de um arquivo para o buffer de saída, sem primeiro modificá-lo ou deslocar o ponteiro até uma posição, pode-se usar a função readfile(), que vai economizar uma chamada à função fopen().
stream
O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).
Retorna o número de caracteres lidos do fluxo stream
e passados para a saída.
Exemplo #1 Usando fpassthru() com arquivo binário
<?php
// Abre o arquivo em modo binário
$name = './img/ok.png';
$fp = fopen($name, 'rb');
// Rnvia os headers
header("Content-Type: image/png");
header("Content-Length: ".filesize($name));
// Manda a imagem e para o script
fpassthru($fp);
exit;
?>
Nota:
Ao utilizar fpassthru() em um arquivo binário em sistemas Windows, assegure-se de abrir o arquivo em modo binário, acrescentando um
b
ao modo informado na chamada a fopen().Recomenda-se utilizar o modo
b
ao lidar com arquivos binários, mesmo que seu sistema não exiga isso, de forma que seus scripts se tornem mais portáveis.