Подробная ошибка на fopen - PullRequest
19 голосов
/ 18 марта 2010

Я использую fopen для чтения из файла

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

Теперь я постоянно получаю сообщение об ошибке. Не удалось открыть файл. Я проверил путь к файлу и даже изменил права доступа к файлу на 777. Есть ли способ получить подробный отчет об ошибке, например, почему файл не может быть открыт аналогично mysql_error ()?

Ответы [ 4 ]

30 голосов
/ 18 марта 2010

Включите отчеты об ошибках, или, в производственной среде (начиная с PHP 5.2.0), вы также можете использовать error_get_last().

14 голосов
/ 18 марта 2010

Для версий php до 5.2 (без 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

5 голосов
/ 18 марта 2010

Да.
PHP имеет подробное сообщение об ошибке для вас.
Вы просто должны включить его.

Чтобы отобразить его на экране, добавьте две строки вверху скрипта:

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

Или, если вы хотите, чтобы это было зарегистрировано,

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

Также обратите внимание, что использование die () - очень плохая практика.

1 голос
/ 20 мая 2016
$fh = fopen($path, 'r') or  die (error_get_last());
...