fgets
そふぃのPHP入門 >> PHP関数リファレンス >> ファイルシステム関数 >> fgets

fgets

解説 ファイルから1行取得する
書式 string fgets( resource handle [, int length ] )
string fgets( resource ファイルポインタ [, int 長さ ] )
引数 handle ファイルポインタ
length 長さ
返値 ファイルポインタから読み出した文字列/FALSE(ファイルが終端に達したかエラーの場合)

PHPマニュアル:fgets fgets()

fgets()関数:概略解説

fgets()は指定したファイルから内容を1行読み込む関数です。

第1引数のファイルポインタ(handle)で指定したファイルポインタから、第2引数分のの長さ(length)-1バイト分読み込み、その文字列を返します。読み込みはlength-1バイト読み込んだか、改行文字(返り値に含まれる)に達したか、EOF(ファイルの終端)に達したかのいずれかまで行います。

fgets()関数:返り値解説

正しく取得できた場合は取得した文字列を返し、ファイルポインタは次の行へと移動します。エラーが起こるとFALSEを返します。

fgets()関数:引数解説

handleファイルポインタ
読み込みたいファイルへのファイルポインタを指定します。
length長さ
読み込みたい長さを指定します。実際に読み込む長さは、「指定した長さ -1 バイト」分です。省略した場合のデフォルト値は1kまたは1024バイトとなります。

fgets()関数:補足解説

第2引数のlengthはPHP4.2.0からオプションとなりました。

fgets()関数:注意

ファイル名ではなく、ファイルポインタを指定する事に注意して下さい。ファイルポインタはfopen()関数やfsockopen()関数で正常に開かれたファイルでなければいけません。

注意したいのは1行しか読み込まない事です。1行であってもlengthバイト数以上のデータサイズは読み取りません。例えば fgets( $fp, 10 ); とした場合、$fpの9バイトめまでしか読み取りません。

参考関数

  • fgetss() ---- ファイルポインタから1行取得してHTMLタグを取り除く
  • fgetc() ---- ファイルから1バイトずつ文字を取得する
  • fread() ---- ファイルをバイナリ・モードで読み込む
  • fopen() ---- ファイルまたはURLを開く

サンプルスクリプト

簡単な利用例

  1. <?php
  2. $handle = fopen("somefile.php", "r");
  3.  
  4. // ファイルの1行目を表示する(1024バイト未満)
  5. echo fgets( $handle );
  6.  
  7. fclose( $handle );
  8. ?>

ファイルの内容をすべて出力

  1. <?php
  2. $fp = fopen("somefile.txt", "r");
  3. while( ! feof($fp) ) {
  4.   $buffer = fgets( $fp, 4096 );
  5.   echo $buffer;
  6. }
  7. fclose ($fp);
  8. ?>

参考関数

  • fopen() ---- ファイルまたはURLを開く
  • feof() ---- ファイルの終端に達しているかどうか調べる
  • fclose() ---- ファイルポインタを閉じる