PHP マニュアル
前のページ |  | 次のページ

# fgets

(PHP 3, PHP 4, PHP 5)

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

## 説明

string fgets ( resource handle [, int length] )

handle で指定したファイルポインタから最大 length - 1 バイト読み出し、その 文字列を返します。読み出しは、length - 1 バイト読み出したか、(返り値 に含まれる)改行文字を検出したか、EOF に達したかのいずれかが起こった 時点で終了します。length が指定されない場合、デフォルトは 1k または 1024 バイトとなります。

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

陥りやすい罠:

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

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

簡単な例を以下に示します。

例 1. 行毎にファイルを読み込む

`<?php $handle = @fopen("/tmp/inputfile.txt", "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); } ?>`

> 注意: length パラメータは、PHP 4.2.0 でオプション となりました。もし省略された場合、行の長さを 1024 と仮定します。 PHP 4.3 以降では、length が省略されると 行の終わりに達するまでストリームを読み続けます。 もしもファイル内の行の多くが 8KB を超えている場合、 行の長さの最大値を特定するためにスクリプトはリソースの影響を より大きく受けることになります。

fgetss()、 fread()、 fgetc()、 stream_get_line()、 fopen()、 popen()、 fsockopen() および stream_set_timeout() も参照ください。

前のページ | ホーム | 次のページ
fgetcsv | 上に戻る | fgetss