fopenは使いどころを誤ると無限ループに陥る件
次のようなコードは危険な場合がある。
$fp = fopen(“ファイル","r");
while(!feof($fp))
{
}
fclose($fp);
これは、ファイルがもし無い場合、!feof($fp)がずっと真になってしまい、無限ループするからである。
解決法は
$fp = @fopen(“ファイル","r");
if( $file )
{
while(!feof($fp))
{
}
fclose($fp);
}
このようにエラー制御子@を使う事で、fopenの時点でFALSEをしっかり返され、
次のifでwhileに入らずに済む。
ディスカッション
コメント一覧
まだ、コメントがありません