fgets

(PHP 4, PHP 5, PHP 7, PHP 8)

fgetsファイルポインタから 1 行取得する

説明

fgets(resource $stream, ?int $length = null): string|false

ファイルポインタから 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($fp4096)) !== false) {
        echo 
$buffer;
    }
    if (!
feof($fp)) {
        echo 
"Error: unexpected fgets() fail\n";
    }
    
fclose($fp);
}
?>

注意

注意: マッキントッシュコンピュータ上で作成されたファイルを読み込む際に、 PHP が行末を認識できないという問題が発生した場合、 実行時の設定オプションauto_detect_line_endings を有効にする必要が生じるかもしれません。

注意:

C 言語の fgets() の動作に慣れている人は、 EOF を返す条件の違いについて注意する必要があります。

参考

  • fgetss() - ファイルポインタから 1 行取り出し、HTML タグを取り除く
  • fread() - バイナリセーフなファイルの読み込み
  • fgetc() - ファイルポインタから1文字取り出す
  • stream_get_line() - 指定されたデリミタの位置までのデータを一行分としてストリームから読み込む
  • fopen() - ファイルまたは URL をオープンする
  • popen() - プロセスへのファイルポインタをオープンする
  • fsockopen() - インターネット接続もしくは Unix ドメインソケット接続をオープンする
  • stream_set_timeout() - ストリームにタイムアウトを設定する

関連キーワード:  ポインタ, 取得, ファイル, stream, length, オープン, 注意, fgets, データ, 行末