【PHP】「fread」関数を使ってファイルを読み込む方法
【PHP】
「fread」関数を使ってファイルを読み込む方法
「fread」関数は、
ファイル内容を一度で読み込むタイプのファイル読み込み関数。
「fread」関数だけでは機能させることができず、
あらかじめ「fopen()」関数などで、「ファイルポインタ」を作成する必要がある。
「fread」関数では、
「ファイルパス(ファイルURL)」で指定するのではなく、
「ファイルポインタ」で指定するので、
「fopen()」関数などを一緒に記述する必要がある。
ファイル内容を文字列として読み込むのであれば、
「file_get_contents()」を利用する方が効率的。
「fread」関数とは
「fread」関数は、
バイナリセーフなファイルを読み込む関数。
「fread」関数は、
「fopen()」関数で取得したファイルポインタから、
ファイルの最後までか、第二引数「length」で指定した「バイト数」分ファイルに内容を読み込む。
第二引数「length」を指定しなかった場合は、
ファイルの最後「EOF (ファイルの終端)」までファイル内容を読み込む。
ファイルの中身を「文字列」に格納するなら、「file_get_contents()」が効率的。
「fread()」関数は、ファイルポインタの現在地から読み込み開始される。
ポインタの現在位置を調べるには、「ftell()」関数を使用し、
ポインタ位置を巻き戻すには、「rewind()」を使用する。
Back
「fread」関数の書式
「fread」関数は、
「fopen()」関数を使用して、
「ファイルポインタ」を作成しないと利用する事ができない。
ファイルを読み込むのに、一手間がいるファイル読み込み関数。
fread(resource $stream, int $length): string|false
fread(ファイルポインタ, 読み込み文字数): 返り値
パラメータ
パラメータ | 説明 |
stream |
「fopen()」を使用して作成した「ファイルシステムポインタリソース」を指定。
|
length |
読み込む最大バイト数を指定する。
|
戻り値 |
読み込んだ文字列を返す。
失敗した場合「false」を返す。
|
「fread」関数のサンプルコード
//ファイル内容を読み込んで変数に格納する
$filename = "ファイル名.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
//バイナリファイル(画像など)の読み込み
「バイナリファイル」と「テキストファイル」の形式の違いは、
「fopen()」関数の「mode」パラメータに「b」を指定する必要がある。
$filename = "ファイル名.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
//リモートファイルを読み込む
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
$handle = fopen("http://www.example.com/", "rb");
if (FALSE === $handle) {
exit("Failed to open stream to URL");
}
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
Back