web-dev-qa-db-ja.com

fopenの詳細なエラー

ファイルから読み取るためにfopenを使用しています

$fh = fopen($path, 'r') or die('Could not open file');

今度は常にエラーが発生するファイルを開けませんでした。ファイルパスを確認し、ファイルのアクセス許可を777に変更しました。mysql_error()のようにファイルを開けない理由として、詳細なエラーレポートを取得する方法はありますか?

22
Elitmiar

エラー報告をオンにするか、実稼働環境(PHP 5.2.0以降))では error_get_last() も使用できるはずです。

34
Pekka

5.2より前のバージョンのphp(error_get_last()が欠けている)の場合、 track_errors を使用できます。

ini_set('track_errors', 1);
$fh = fopen('lalala', 'r');
if ( !$fh ) {
  echo 'fopen failed. reason: ', $php_errormsg;
}

参照: http://de.php.net/reserved.variables.phperrormsg

14
VolkerK

はい。
PHPには詳細なエラーメッセージが表示されます。
電源を入れるだけです。

画面上に配置するには、スクリプトの上部に次の2行を追加します。

ini_set('display_errors',1);
error_reporting(E_ALL);

または、代わりにログに記録する場合は、

ini_set('log_errors',1);
ini_set('display_errors',0);
error_reporting(E_ALL);

また、die()の使用は非常に悪い習慣であることにも注意してください。

6
$fh = fopen($path, 'r') or  die (error_get_last());
1
user4796734