【PHP8.x】fread関数の使い方

作成日: 更新日:

fread関数は、指定されたファイルポインタから、指定されたバイト数だけデータを読み込むための関数です。この関数は、fopen()関数で開かれたファイルポインタ(ファイルリソース)を受け取り、そのファイルからバイナリセーフな方法でデータを読み込みます。バイナリセーフとは、ファイルの内容をそのまま、どのようなバイト列であっても正しく読み込めることを意味し、テキストファイルだけでなく画像やその他のバイナリファイルに対しても安全に利用できる特徴があります。

第一引数には、ファイルを指し示すファイルポインタ(resource型)を指定します。これは通常、fopen()関数の戻り値です。第二引数には、ファイルから読み込みたい最大バイト数(int型)を指定します。fread関数は、このバイト数に達するか、ファイルの終端(EOF)に到達するか、あるいはパケットの読み込みが完了するかのいずれかの条件が満たされるまで、データを読み込みます。

成功した場合、fread関数は読み込んだデータを文字列として返します。読み込むデータがない場合や、読み込みに失敗した場合は、空の文字列またはfalseが返されることがあります。特に、ファイルの終端に達していないにもかかわらず読み込むべきデータがない場合には空の文字列を返し、ストリームエラーが発生した場合にはfalseを返します。読み込みが完了すると、ファイルポインタは読み込んだデータの分だけ先に進みます。この関数は、ローカルファイルだけでなく、ネットワークストリーム(ソケットなど)からのデータ読み込みにも使用できます。使用後は、fclose()関数でファイルポインタを閉じるのが一般的です。

基本的な使い方

構文(syntax)

<?php
$filePath = 'example.txt';
$fileHandle = fopen($filePath, 'r');
if ($fileHandle) {
    $data = fread($fileHandle, 8192); // ファイルハンドルから最大8192バイトを読み込む
    fclose($fileHandle);
    echo $data;
}
?>

引数(parameters)

resource $stream, int $length

  • resource $stream: 読み込み対象のファイルポインタまたはストリームリソース
  • int $length: 読み込むバイト数

戻り値(return)

string|false

指定されたファイルポインタから指定されたバイト数だけ読み込んだデータを文字列として返します。読み込みに失敗した場合はfalseを返します。