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

作成日: 更新日:

fgets関数は、指定されたファイルポインタから1行分のデータを読み込む処理を実行する関数です。この関数は、主にテキストファイルの内容を1行ずつ処理する際に利用されます。ファイルポインタとは、fopen()関数などで開かれたファイルへの接続を示すものであり、fgets()関数はこのポインタを通じてデータを読み込みます。

具体的には、fgets()関数は、ファイルポインタから改行コード(\n)に到達するまで、あるいは指定された最大バイト数に達するまで文字を読み込みます。読み込みが成功すると、改行コードを含んだ文字列を返します。例えば、ログファイルや設定ファイルなど、行単位で情報を区切っているテキストファイルの内容をPHPプログラムで解析する際に非常に役立ちます。

引数としては、読み込み対象となるファイルポインタを最初に指定します。オプションで第二引数に読み込む最大バイト数を指定できます。このバイト数を指定することで、意図しない大きなデータブロックの読み込みを防ぎ、メモリ使用量を制御することが可能です。この最大バイト数が指定された場合、実際には指定値から1を引いたバイト数までが読み込まれ、残りの1バイトは文字列の終端を示すnull文字のために予約されます。

戻り値は、読み込みが成功した場合は文字列として返されますが、ファイルの終端(EOF)に達した場合や、何らかのエラーが発生した場合はfalseを返します。そのため、通常は戻り値がfalseでないことを確認しながら、whileループなどを用いてファイル全体を読み進めるように使用されます。fgets()関数は、ファイルからの行単位のデータ取得を安全かつ効率的に行うための、PHPにおける基本的なファイル操作関数の一つです。

基本的な使い方

構文(syntax)

<?php
$fileHandle = fopen('php://stdin', 'r');
$line = fgets($fileHandle);
fclose($fileHandle);
?>

引数(parameters)

resource $stream, ?int $length = null

  • resource $stream: 読み込む対象となるファイルポインタやソケットなどのリソースを指定します
  • ?int $length = null: 読み込む最大バイト数を指定します。省略した場合、1行全体を読み込みます

戻り値(return)

string|false

指定されたファイルポインタから1行を読み込み、文字列として返します。ファイルの終端に達するか、エラーが発生した場合は false を返します。