2010-03-18 7 views
15

Я использую FOPEN для чтения из файлаПодробная ошибка Еореп

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

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

ответ

24

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

+0

о, получить \ _last \ _error() ... это лучше, чем $ PHP \ _errormsg. Удаление моего ответа в пользу этой функции. – VolkerK

+2

Не нужно его удалять. Он может быть в проекте (например, я сейчас), который имеет только 5.1! – webbiedave

+0

убежден ...... – VolkerK

3

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

Чтобы Dislay его на экране добавить эти 2 строки в верхней части сценария:

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

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

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

Также отметим, что с помощью штампа() - очень плохая практика.

12

Для версий 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

+1

+1 pre 5.2 установки все еще вокруг. Ницца, не знал этого! –

+1

+1 снова - не знал о track_errors ini var, это удобно :-) – richsage

0
$fh = fopen($path, 'r') or die (error_get_last()); 
Смежные вопросы