PHP マニュアル
前のページ |  | 次のページ

# fread

(PHP 3, PHP 4 , PHP 5)

fread -- バイナリ・モードでファイルを読み込む

## 説明

string fread ( resource handle, int length)

fread()はhandleが指す ファイルポインタから最高lengthバイト 読み込みます。読み込みは、lengthバイト分 読み込まれたか、EOF（ファイルの終端）に達したか、あるいは （ネットワークストリームの場合）パケットが利用可能になったときの、 いずれか早い方の事象により中止されます。

`// ファイルの中身を読んで文字列に格納する $filename = "/usr/local/something.txt"; $fd = fopen ($filename, "r"); $contents = fread ($fd, filesize ($filename)); fclose ($fd);`

警告
バイナリとテキストファイルの形式が異なるシステム(すなわち Windows)では、fopen()の mode パラメータに'b' を指定してファイルをオープンする必要があります。

`$filename = "c:\\files\\somepic.gif"; $fd = fopen ($filename, "rb"); $contents = fread ($fd, filesize ($filename)); fclose ($fd);`

> 注意: ネットワークストリームやパイプから読み込んでいる場合、例えば remote filesや popen()、proc_open()が返すものを 読み込んでいる場合には、パケットが有効になった後に読み込みはストップ します。つまり以下の例のように分割されたデータを結合すべきである ということです。

`<?php $handle = fopen ("http://www.php.net/", "rb"); $contents = ""; do { $data = fread($handle, 8192); if (strlen($data) == 0) { break; } $contents .= $data; } while(true); fclose ($handle); ?>`

> 注意: 上の例では繰り返し毎に関数をコールしないのでオーバーヘッドが抑制できるため、 伝統的な while(!feof()) を使うアプローチよりも パフォーマンス的にベターです。

> 注意: 文字列にファイルを読み込みたいだけならば、file_get_contents() を使うほうが上記の例よりも効率的です。

fwrite(), fopen(), fsockopen(), popen(), fgets(), fgetss(), fscanf(), file(), fpassthru()も参照してください。

前のページ | ホーム | 次のページ
fputs | 上に戻る | fscanf