無料CGI、PHPサイト(確認画面付きメールフォーム・メーリングリスト・メルマガ設置、逆アクセスランキング、画像カウンター等)PHPマニュアル by k-sky

fpassthru

(PHP 4, PHP 5)

fpassthruファイルポインタ上に残っているすべてのデータを出力する

説明

int fpassthru ( resource $handle )

与えられたファイルポインタを EOF まで読み、結果を出力バッファに書き出します。

ファイルに既にデータを書き終えている場合で ファイルポインタをファイルの先頭にリセットするには rewind() をコールする必要があります。

ファイルを更新したり特定のオフセットを探すのではなく 内容を出力バッファにダンプしたいだけの場合、 readfile() を使用することが可能です。 この場合、fopen() コールは必要ありません。

パラメータ

handle

ファイルポインタは、有効なファイルポインタである必要があり、 fopen() または fsockopen() で正常にオープンされた (そしてまだ fclose() でクローズされていない) ファイルを指している必要があります。

返り値

エラーが起こった場合、fpassthru()FALSE を返します。 それ以外の場合、fpassthru()handle から読み込んだ文字の数を返し、出力へ渡します。

例1 バイナリファイルに対する fpassthru() の使用例

<?php

// バイナリモードでファイルをオープンする
$name './img/ok.png';
$fp fopen($name'rb');

// 正しいヘッダを送出する
header("Content-Type: image/png");
header("Content-Length: " filesize($name));

// 画像をダンプしスクリプトを終了する
fpassthru($fp);
exit;

?>

注意

注意: fpassthru() を Windows システムのバイナリファイルで 使用する場合、fopen() をコールする際に モードに b を追加してバイナリモードでファイルを オープンするようにしてください。
バイナリファイルを扱う場合は、必要でなくても b フラグを使用するようにしましょう。 それにより、スクリプトの可搬性がより高くなります。