关于fopen的详细错误

Rol*_*and 21 php error-handling fopen

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

$fh = fopen($path, 'r') or die('Could not open file');
Run Code Online (Sandbox Code Playgroud)

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

Pek*_*ica 33

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


Vol*_*erK 14

对于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;
}
Run Code Online (Sandbox Code Playgroud)

另见:http://de.php.net/reserved.variables.phperrormsg


You*_*nse 6

是.
PHP有详细的错误信息给你.
你只需打开它.

要在屏幕上显示它,请在脚本顶部添加以下两行:

ini_set('display_errors',1);
error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

或者如果你想要它被记录,

ini_set('log_errors',1);
ini_set('display_errors',0);
error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

另请注意,使用die()是非常糟糕的做法.


小智 5

$fh = fopen($path, 'r') or  die (error_get_last());
Run Code Online (Sandbox Code Playgroud)