(PHP 4, PHP 5, PHP 7, PHP 8)
fgets — ファイルポインタから 1 行取得する
streamファイルポインタは、有効なファイルポインタである必要があり、 fopen() または fsockopen() で正常にオープンされた (そしてまだ fclose() でクローズされていない) ファイルを指している必要があります。
length
読み出しは、length - 1
バイト読み出したか、(戻り値に含まれる)
改行文字を検出したか、EOF に達したかのいずれかが起こった時点で終了します。
length が指定されない場合は、行末に達するまで読み続けます。
stream で指定したファイルポインタから最大
length - 1 バイト読み出し、
その文字列を返します。ファイルポインタから読み込むデータがもうない場合は
false を返します。
エラーが起こった場合、false を返します。
例1 行毎にファイルを読み込む
<?php
$fp = @fopen("/tmp/inputfile.txt", "r");
if ($fp) {
while (($buffer = fgets($fp, 4096)) !== false) {
echo $buffer, PHP_EOL;
}
if (!feof($fp)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($fp);
}
?>注意:
PHP 8.1.0 より前のバージョンでは、実行時の設定オプション auto_detect_line_endings を有効にすることで、Macintosh 系のシステムで作成されたファイルの行末を PHP に正しく認識させることができました。このオプションは PHP 8.1.0 で非推奨になりました。 必要な場合は、代わりに
"\r"の改行を手動で処理してください。
注意:
C 言語の fgets() の動作に慣れている人は、
EOFを返す条件の違いについて注意する必要があります。