fgets
(PHP 4, PHP 5, PHP 7)
fgets — ファイルポインタから 1 行取得する
説明
fgets
( resource $handle
[, int $length
] ) : string
ファイルポインタから 1 行取得します。
パラメータ
handle
- ファイルポインタは、有効なファイルポインタである必要があり、 fopen() または fsockopen() で正常にオープンされた (そしてまだ fclose() でクローズされていない) ファイルを指している必要があります。
length
- 読み出しは、
length
- 1 バイト読み出したか、(返り値に含まれる) 改行文字を検出したか、EOF に達したかのいずれかが起こった時点で終了します。 length が指定されない場合は、行末に達するまで読み続けます。
返り値
handle
で指定したファイルポインタから最大
length
- 1 バイト読み出し、
その文字列を返します。ファイルポインタから読み込むデータがもうない場合は
false
を返します。
エラーが起こった場合、false
を返します。
例
例1 行毎にファイルを読み込む
<?php$handle = @fopen("/tmp/inputfile.txt", "r");if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { echo $buffer; } if (!feof($handle)) { echo "Error: unexpected fgets() fail\n"; } fclose($handle);}?>
注意
注意:
マッキントッシュコンピュータ上で作成されたファイルを読み込む際に、
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() - ストリームにタイムアウトを設定する