fgetcsv
fgetss
ファイルシステム 関数
PHP Manual

# fgets

(PHP 4, PHP 5)

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

### 説明

string fgets ( resource `$handle` [, int `$length` ] )

ファイルポインタから 1 行取得します。

### パラメータ

`handle`

  ファイルポインタは、有効なファイルポインタである必要があり、 fopen() または fsockopen() で正常にオープンされた （そしてまだ fclose() でクローズされていない） ファイルを指している必要があります。

`length`

  読み出しは、`length` - 1 バイト読み出したか、(返り値に含まれる) 改行文字を検出したか、EOF に達したかのいずれかが起こった時点で終了します。 length が指定されない場合は、行末に達するまで読み続けます。

  > 注意:

  > PHP 4.3.0 より前のバージョンでは、もしこのパラメータが省略された場合、 行の長さを 1024 と仮定していました。 もしもファイル内の行の多くが 8KB を超えている場合は、 行の最大長を指定するとスクリプトのリソース効率がよくなります。

### 返り値

`handle` で指定したファイルポインタから最大 `length` - 1 バイト読み出し、 その文字列を返します。ファイルポインタから読み込むデータがもうない場合は `FALSE` を返します。

エラーが起こった場合、`FALSE` を返します。

### 変更履歴

バージョン | 説明
--- | ---
4.3.0 | fgets() はバイナリセーフとなりました。
4.2.0 | `length` パラメータがオプションとなりました。

### 例

例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() - ストリームにタイムアウトを設定する

fgetcsv
fgetss
ファイルシステム 関数
PHP Manual