27

我正在使用 fopen 从文件中读取

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

现在我不断收到错误无法打开文件。我检查了文件路径,甚至将文件的权限更改为 777。有没有办法可以得到详细的错误报告,为什么文件无法打开,类似于 mysql_error()?

4

4 回答 4

40

打开错误报告,或者,在生产环境中(从 PHP 5.2.0 开始)您也应该能够使用error_get_last().

于 2010-03-18T13:54:20.777 回答
15

对于 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

于 2010-03-18T13:54:23.517 回答
9

是的。
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() 是非常糟糕的做法。

于 2010-03-18T13:51:51.890 回答
3
$fh = fopen($path, 'r') or  die (error_get_last());
于 2016-05-20T17:44:00.670 回答