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

# fpassthru

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

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

### 説明

function fpassthru(resource `$stream`): int

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

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

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

### パラメータ

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

### 戻り値

fpassthru() は `stream` から読み込み、出力に渡した文字数を返します。

### 例

例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` フラグを使用するようにしましょう。 それにより、スクリプトの可搬性がより高くなります。

### 参考

- readfile() - ファイルを出力する
- fopen() - ファイルまたは URL をオープンする
- popen() - プロセスへのファイルポインタをオープンする
- fsockopen() - インターネット接続もしくは Unix ドメインソケット接続をオープンする

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open