Php/docs/function.feof

提供:Dev Guides
< Php
移動先:案内検索

feof

(PHP 4, PHP 5, PHP 7)

feofファイルポインタがファイル終端に達しているかどうか調べる


説明

feof ( resource $handle ) : bool

ファイルポインタがファイル終端に達しているかどうかを調べます。


パラメータ

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


返り値

ファイルポインタが EOF に達しているかまたはエラー (ソケットタイムアウトを含みます) の場合に true 、 その他の場合に false を返します。


注意

警告 fsockopen() でオープンした接続がサーバーによって閉じられていない場合、feof() はハングします。回避策は以下の例を参照ください。

例1 feof() のタイムアウト処理

<?phpfunction safe_feof($fp, &$start = NULL) { $start = microtime(true); return feof($fp);}/* $fp は事前に fsockopen() でオープンしているものとします */$start = NULL;$timeout = ini_get('default_socket_timeout');while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout){ /* 処理 */}?>

警告 無効なファイルポインタを渡した場合、無限ループに陥ることがあります。 なぜなら feof()true を返すことができないからです。

例2 feof() に無効なファイルポインタを使用する例

<?php// ファイルを読み込めなかったりファイルが存在しなかったりした場合、// fopen 関数は FALSE を返します。$file = @fopen("no_such_file", "r");// fopen からの FALSE が警告を発生させ、ここで無限ループとなります。while (!feof($file)) {}fclose($file);?>