Дополнительно
Как мне отобразить ошибки PHP?
Я проверил, что мой файл инициализации PHP (php.ini
) и display_errors
установлен, а также сообщение об ошибке E_ALL
. Я перезапустил свой веб-сервер Apache.
Я даже поместил эти строки в верхнюю часть моего скрипта, и он даже не улавливает простые ошибки анализа. Например, я объявляю переменные с " $"
и не закрываю операторы";"
. Но все мои сценарии показывают пустую страницу об этих ошибках, но я хочу видеть ошибки в выходе моего браузера.
error_reporting(E_ALL);
ini_set('display_errors', 1);
Что осталось сделать?
1636
28
Это всегда работает для меня
Однако это не делает PHP показывать ошибки анализа - единственный способ показать эти ошибки - это изменить ваш php.ini с помощью этой строки:
(если у вас нет доступа к
php.ini
, то и размещение этой строки в.htaccess
может работать):Вы не можете поймать ошибки анализа при включении вывода ошибки во время выполнения, потому что он анализирует файл перед фактическим выполнением чего-либо (и поскольку во время этого происходит ошибка, он ничего не выполняет). Вам нужно будет изменить фактическую конфигурацию сервера, чтобы отображались ошибки отображения и использовался уровень erroriate error_reporting. Если у вас нет доступа к php.ini, вы можете использовать .htaccess или аналогичный, в зависимости от сервера.
Этот вопрос может предоставить дополнительную информацию.
Внутри вашего php.ini :
Затем перезагрузите веб-сервер.
Чтобы отобразить все ошибки, вам нужно:
1. Имейте эти строки в скрипте PHP, который вы вызываете из браузера (обычно
index.php
):2.(a) Убедитесь, что в этом сценарии нет синтаксических ошибок
2.(b) Установите
display_errors = On
в вашемphp.ini
В противном случае он не может даже запустить эти 2 строки!
Вы можете проверить синтаксические ошибки в вашем скрипте, выполнив (в командной строке):
Если вы включите скрипт из другого скрипта PHP, то он отобразит синтаксические ошибки в скрипте included . Например:
index.php
my_script.php
Некоторые провайдеры веб-хостинга позволяют изменять параметры PHP в файле
.htaccess
.Вы можете добавить следующую строку:
У меня была та же проблема, что и у вас, и это решение исправило ее.
Вы можете обнаружить, что все настройки для «отчетов об ошибках» или «об ошибках отображения» не работают в PHP & nbsp; 7. Это потому, что обработка ошибок изменилась. Попробуйте вместо этого:
Или, чтобы поймать исключения и ошибки за один раз (это не обратно совместимо с PHP & nbsp; 5):
Это будет работать:
Использовать:
Это лучший способ написать это, но синтаксическая ошибка дает пустой вывод, поэтому используйте консоль для проверки синтаксических ошибок. Лучший способ отладить код PHP - использовать консоль; запустить следующее:
Установите это в свой файл index.php :
Создайте файл с именем php.ini в папке, где находится ваш файл PHP.
Внутри php.ini добавьте следующий код (я даю простую ошибку, показывающую код):
Вот скрипт PHP:
Для более подробного объяснения ошибок PHP посетите Ошибка PHP - error_reporting () .
Если, несмотря на следование всем вышеперечисленным ответам (или вы не можете редактировать свой файл php.ini), вы все равно не можете получить сообщение об ошибке, попробуйте создать новый файл PHP, который включает сообщения об ошибках, а затем включите файл проблемы. например:
Несмотря на то, что все правильно установлено в моем файле
php.ini
, это был единственный способ, которым я мог поймать ошибку пространства имен. Мой точный сценарий был:Я обычно использую следующий код в своих простых проектах PHP.
При использовании PHP в качестве модуля Apache мы можем изменить настройки конфигурации, используя директивы в файлах конфигурации Apache (например,. httpd.conf) и файлы .htaccess. Для этого вам понадобятся привилегии «AllowOverride Options» или «AllowOverride All».
Проверь это
http://funbird.co.uk/blog/tech-articals/linux-tech-articals/enabling-error-display-php-via-htaccess
Поскольку мы сейчас используем PHP 7, приведенные здесь ответы больше не верны. Единственный, кто все еще в порядке, это тот, что от Фрэнка Форте, когда он говорит о PHP & nbsp; 7.
С другой стороны, вместо того, чтобы пытаться поймать ошибки с помощью попытки / уловки, вы можете использовать трюк: используйте include.
Здесь три фрагмента кода:
Файл: tst1.php
Запуск этого в PHP & nbsp; 7 ничего не покажет.
Теперь попробуйте это:
Файл: tst2.php
Файл: tst3.php
Теперь запустите tst2, который устанавливает сообщение об ошибке, а затем включите tst3. Ты увидишь:
Если вы каким-то образом оказались в ситуации, когда вы не можете изменить настройку с помощью
php.ini
или.htaccess
, вам не повезло отображать ошибки, когда ваши PHP-скрипты содержат ошибки анализа. Затем вам нужно будет разрешить навести файлы в командной строке следующим образом:Если ваш хост заблокирован таким образом, что не позволяет изменять значение с помощью
php.ini
или.htaccess
, он также может запретить изменение значения с помощьюini_set
. Вы можете проверить это с помощью следующего скрипта PHP:Вы можете сделать что-то вроде ниже:
Установите следующие параметры в главном файле индекса:
Затем, исходя из ваших требований, вы можете выбрать, что вы хотите показать:
Для всех ошибок, предупреждений и уведомлений:
Для всех ошибок:
Для всех предупреждений:
Для всех уведомлений:
Для получения дополнительной информации проверьте здесь.
Вы можете добавить свой собственный обработчик ошибок, который может предоставить дополнительную информацию отладки. Кроме того, вы можете настроить его для отправки вам информации по электронной почте.
Этот код сверху должен работать:
Однако попробуйте отредактировать код на телефоне в файле:
Лучшее / простое / быстрое решение, которое вы можете использовать при быстрой отладке, - это окружить ваш код перехватами исключений. Это то, что я делаю, когда хочу проверить что-то быстрое в производстве.