(PHP 4, PHP 5)
fpassthru —
ファイルポインタ上に残っているすべてのデータを出力する
説明
int
fpassthru ( resource handle )
与えられたファイルポインタを EOF まで読み、結果を標準出力に書き出します。
エラーが起こった場合、
fpassthru() は
FALSE を返します。
それ以外の場合、
fpassthru() は
handle
から読み込んだ文字の数を返し、出力へ渡します。
ファイルポインタは、有効なファイルポインタである必要があり、
fopen() または
fsockopen() で正常にオープンされた
(そしてまだ
fclose() でクローズされていない)
ファイルを指している必要があります。
ファイルに既にデータを書き終えている場合で
ファイルポインタをファイルの先頭にリセットするには
rewind() をコールする必要があります。
ファイルを更新したり特定のオフセットを探すのではなく
内容を出力バッファにダンプしたいだけの場合、
readfile() を使用することが可能です。
この場合、
fopen() コールは必要ありません。
注意:
fpassthru() を Windows システムのバイナリファイルで
使用する場合、
fopen() をコールする際に
モードに
b を追加してバイナリモードでファイルを
オープンするようにしてください。
例 607. バイナリファイルに対する fpassthru()
の使用例
<?php
// バイナリモードでファイルをオープンする
$name = './img/ok.png';
$fp = fopen($name, 'rb');
// 正しいヘッダを送出する
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
// 画像をダンプしスクリプトを終了する
fpassthru($fp);
exit;
?>
readfile(),
fopen(),
popen(),
fsockopen()
も参照ください。