Using
<?php ini_set('display_errors', 1); ?>
at the top of your script will not catch any parse errors. A missing ")" or ";" will still lead to a blank page.
This is because the entire script is parsed before any of it is executed. If you are unable to change php.ini and set
display_errors On
then there is a possible solution suggested under error_reporting:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
include("file_with_errors.php");
?>
[Modified by moderator]
You should also consider setting error_reporting = -1 in your php.ini and display_errors = On if you are in development mode to see all fatal/parse errors or set error_log to your desired file to log errors instead of display_errors in production (this requires log_errors to be turned on).Конфигурација во време на извршување
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Конфигурација во време на извршување
Референца за `errorfunc.configuration.php` со подобрена типографија и навигација.
Конфигурација во време на извршување
Поведението на овие функции е под влијание на поставките во php.ini.
| Име | Стандардно | Променливо | Дневник на промени |
|---|---|---|---|
| error_reporting | NULL | INI_ALL |
|
| display_errors | "1" | INI_ALL |
|
| display_startup_errors | "1" | INI_ALL |
Пред PHP 8.0.0, стандардната вредност беше "0".
|
| log_errors | "0" | INI_ALL |
|
| log_errors_max_len | "1024" | INI_ALL |
Немаше ефект од PHP 8.0.0, отстрането од PHP 8.1.0. |
| ignore_repeated_errors | "0" | INI_ALL |
|
| ignore_repeated_source | "0" | INI_ALL |
|
| report_memleaks | "1" | INI_ALL |
|
| track_errors | "0" | INI_ALL |
Осудено од PHP 7.2.0, отстрането од PHP 8.0.0. |
| html_errors | "1" | INI_ALL |
|
| xmlrpc_errors | "0" | INI_SYSTEM |
|
| xmlrpc_error_number | "0" | INI_ALL |
|
| docref_root | "" | INI_ALL |
|
| docref_ext | "" | INI_ALL |
|
| error_prepend_string | NULL | INI_ALL |
|
| error_append_string | NULL | INI_ALL |
|
| error_log | NULL | INI_ALL |
|
| error_log_mode | 0o644 | INI_ALL |
Достапно од PHP 8.2.0 |
| syslog.facility | "LOG_USER" | INI_SYSTEM |
Достапно од PHP 7.3.0. |
| syslog.filter | "no-ctrl" | INI_ALL |
Достапно од PHP 7.3.0. |
| syslog.ident | "php" | INI_SYSTEM |
Достапно од PHP 7.3.0. |
Еве кратко објаснување на директивите за конфигурација.
-
error_reportingint -
Поставете го нивото на известување за грешки. Параметарот е или цел број што претставува битно поле, или именувани константи. Нивоата и константите за известување за грешки се опишани во Претходно дефинирани константи, и во php.ini. За да го поставите во време на извршување, користете го error_reporting() функцијата. Погледнете исто така display_errors directive.
Стандардната вредност е
E_ALL.Пред PHP 8.0.0, стандардната вредност беше:
. Ова значи дека дијагностиките од нивоE_ALL& ~E_NOTICE& ~E_STRICT& ~E_DEPRECATEDE_NOTICE,E_STRICTandE_DEPRECATEDне беа прикажани.Забелешка: PHP константи надвор од PHP
Користењето PHP константи надвор од PHP, како во httpd.conf, нема да имаат корисно значење, така што во такви случаи int вредностите се потребни. И бидејќи нивоата на грешки ќе се додаваат со текот на времето, максималната вредност (за
E_ALL) веројатно ќе се промени. Значи, наместоE_ALLразмислете да користите поголема вредност за да ги покриете сите битни полиња од сега па натаму, нумеричка вредност како2147483647(вклучува сите грешки, не самоE_ALL). -
display_errorsstring -
Ова одредува дали грешките треба да се печатат на екранот како дел од излезот или да се скријат од корисникот.
Име (константа)
"stderr"ги испраќа грешките доstderrнаместоstdout.Забелешка:
Ова е функција за поддршка на вашиот развој и никогаш не треба да се користи на продукциски системи (на пр. системи поврзани на интернет).
Забелешка:
Иако display_errors може да се постави во време на извршување (со ini_set()), нема да има ефект ако скриптата има фатални грешки. Ова е затоа што посакуваната акција во време на извршување не се извршува.
-
display_startup_errorsbool -
Дури и кога display_errors е вклучено, грешките што се случуваат за време на почетната секвенца на PHP не се прикажуваат. Силно се препорачува да се задржи display_startup_errors исклучено, освен за дебагирање.
-
log_errorsbool -
Кажува дали пораките за грешки во скриптата треба да се запишуваат во логот за грешки на серверот или error_log. Оваа опција е, значи, специфична за серверот.
Забелешка:
Силно ви се советува да користите запишување грешки наместо прикажување грешки на продукциски веб-сајтови.
-
log_errors_max_lenint -
Поставете ја максималната должина на log_errors во бајти. Во error_log информации за изворот. Стандардно е 1024, а 0 значи дека нема да се применува максимална должина. Оваа должина се применува на запишани грешки, прикажани грешки и исто така на $php_errormsg, но не и на експлицитно повикани функции како error_log().
Кога еден int се користи, вредноста се мери во бајти. Кратенка нотација, како што е опишано во овој ЧПП, исто така може да се користи. -
ignore_repeated_errorsbool -
Не запишувај повторени пораки. Повторените грешки мора да се појават во истата датотека на истата линија освен ако ignore_repeated_source не е поставено на точно.
-
ignore_repeated_sourcebool -
Игнорирај го изворот на пораката при игнорирање на повторени пораки. Кога оваа поставка е Вклучена, нема да запишувате грешки со повторени пораки од различни датотеки или изворни линии.
-
report_memleaksbool -
Ако овој параметар е поставен на Вклучено (стандардно), овој параметар ќе прикаже извештај за протекување на меморијата откриено од менаџерот на меморија на Zend. Овој извештај ќе биде испратен до stderr на Posix платформи. На Windows, ќе биде испратен до дебагерот користејќи OutputDebugString() и може да се прегледа со алатки како » DbgView. Овој параметар има ефект само во дебаг верзија и ако error_reporting вклучува
E_WARNINGна списокот дозволени. -
track_errorsbool -
Ако е овозможено, последната порака за грешка секогаш ќе биде присутна во променливата $php_errormsg.
-
html_errorsbool -
Ако е овозможено, пораките за грешки ќе вклучуваат HTML ознаки. Форматот за HTML грешки создава кликачки пораки кои го насочуваат корисникот на страница која го опишува грешката или функцијата што ја предизвикала грешката. Овие референци се под влијание на docref_root and docref_ext.
Ако е оневозможено, пораката за грешка ќе биде само обичен текст.
-
xmlrpc_errorsbool -
Ако е овозможено, се исклучува нормалното известување за грешки и грешките се форматираат како XML-RPC порака за грешка.
-
xmlrpc_error_numberint -
Се користи како вредност на XML-RPC faultCode елементот.
-
docref_rootstring -
Новиот формат на грешки содржи референца до страница која го опишува грешката или функцијата што ја предизвикала грешката. Во случај на рачни страници, можете да го преземете прирачникот на вашиот јазик и да ја поставите оваа ini директива на URL адресата на вашата локална копија. Ако вашата локална копија од прирачникот може да се достигне преку
"/manual/"можете едноставно да користитеdocref_root=/manual/. Дополнително, мора да ја поставите docref_ext за да одговара на екстензиите на датотеките на вашата копијаdocref_ext=.html. Можно е да се користат надворешни референци. На пример, можете да користитеdocref_root=http://manual/en/ordocref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"Најчесто сакате вредноста на docref_root да завршува со коса црта
"/". Но, видете го вториот пример погоре кој ниту го има ниту му треба.Забелешка:
Ова е функција за поддршка на вашиот развој бидејќи го олеснува пребарувањето на описот на функцијата. Сепак, никогаш не треба да се користи на продукциски системи (на пр. системи поврзани на интернет).
-
docref_extstring -
Константи за известување за грешки docref_root.
Забелешка:
Вредноста на docref_ext мора да започнува со точка
".". -
error_prepend_stringstring -
Низа за прикажување пред порака за грешка. Се користи само кога пораката за грешка се прикажува на екран. Главната цел е да се може да се додаде дополнителен HTML код пред пораката за грешка.
-
error_append_stringstring -
Низа за прикажување по порака за грешка. Се користи само кога пораката за грешка се прикажува на екран. Главната цел е да се може да се додаде дополнителен HTML код по пораката за грешка.
-
error_logstring -
Име на датотеката каде што треба да се запишуваат грешките од скриптата. Датотеката треба да може да се запишува од корисникот на веб-серверот. Ако се користи специјалната вредност
syslogсе користи, грешките се испраќаат до системскиот логер наместо тоа. На Unix, ова значи syslog(3), а на Windows значи дневникот на настани. Погледнете исто така: syslog(). Ако оваа директива не е поставена, грешките се испраќаат до SAPI логерот за грешки. На пример, тоа е лог за грешки во Apache илиstderrво CLI. Погледнете исто така error_log(). -
error_log_modeint -
Режим на датотека за датотеката опишана поставена во error_log.
-
syslog.facilitystring -
Специфицира каков тип на програма го запишува пораката. Ефективно само ако error_log е поставено на "syslog".
-
syslog.filterstring -
Специфицира тип на филтер за филтрирање на запишаните пораки. Дозволените знаци се пропуштаат непроменети; сите други се запишуваат во нивната хексадецимална репрезентација со префикс
\x.-
all– запишаната низа ќе биде поделена по знаците за нов ред, и сите знаци ќе бидат пропуштени непроменети -
ascii– запишаната низа ќе биде поделена по знаците за нов ред, и сите непечатени 7-битни ASCII знаци ќе бидат избегнати -
no-ctrl– запишаната низа ќе биде поделена по знаците за нов ред, и сите непечатени знаци ќе бидат избегнати -
raw– сите знаци се пропуштаат до системскиот логер непроменети, без поделба по нови редови (идентично како PHP пред 7.3)
Оваа директива не е поддржана на Windows.Забелешка:
На
rawтипот на филтер е достапен од PHP 7.3.8 и PHP 7.4.0. -
-
syslog.identstring -
Ја специфицира ident низата што се додава на секоја порака. Ефективно само ако error_log е поставено на "syslog".
Белешки од корисници 2 забелешки
If you set the error_log directive to a relative path, it is a path relative to the document root rather than php's containing folder.