Heim > Artikel > Backend-Entwicklung > So ändern Sie die Fehlerstufe in PHP
In PHP können Sie die Fehlerebene verwenden. Diese Funktion kann angeben, welcher Fehler gemeldet werden soll. Das Syntaxformat ist „error_reporting(level)“; Skript. Die Wertnummer und der Konstantenname sind beide akzeptabel.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
In php.ini können Sie die Alarmstufe des Servers für Fehler festlegen. Standardmäßig meldet PHP alle Fehler außer Benachrichtigungen.
Die Fehlermeldeebene wird durch einige vordefinierte Konstanten festgelegt,
Syntax
int error_reporting ( [int level] )
Wenn die Parameterebene nicht angegeben ist, wird die aktuelle Fehlermeldeebene zurückgegeben. Die folgenden Elemente sind mögliche Werte der Ebene:
Wie in der folgenden Tabelle gezeigt:
1 E_ERROR 报告运行时的致命错误 2 E_WARNING 报告运行的非致命错误 4 E_PARSE 报告解析错误 8 E_NOTICE 报告通告,注意,表示所做的事情可能是错误的. 16 E_CORE_ERROR 报告PHP引擎启动失败 32 E_CORE_WARNING 报告PHP引擎启动时非致命错误 64 E_COMPILE_ERROR 报告编译错误 128 E_COMPILE_WARNING 报告编译时出现的非致命错误 256 E_USER_ERROR 报告用户触发的错误 512 E_USER_WARNING 报告用户触发的警告 1024 E_USER_NOTICE 报告用户触发的通告 2047 E_ALL 报告所有的错误和警告 2048 E_STRICT 报告不赞成的用法和不推荐的行为
In der Datei php.ini enthält der Standardbericht alle Fehler außer Benachrichtigungen, wie durch die folgende Anweisung festgelegt:
error_reporting = E_ALL & ~ (E_NOTICE)
Im obigen Ausdruck steht das Symbol „&“ für das Nebeneinander mehrerer Bedingungen und „~“ für die Negation, was NICHT bedeutet.
Wenn Sie die Warnmeldung ignorieren möchten, können Sie die folgende Anweisung festlegen:
error_reporting = E_ALL & ~(E_NOTICE) & ~(E_WARNING)
In der INI-Datei lauten die fehlerbezogenen Einstellungen wie folgt:
(1) error_reporting, Fehlerstufe festlegen
(2) display_errors, ob Fehlerberichte angezeigt werden sollen, zum Öffnen auf ON setzen, festlegen auf OFF, um alle Fehler zu schließen. Tipp
(3)log_errors, die Standardeinstellung ist OFF, ob Fehlerprotokolle aufgezeichnet werden sollen;
(4)track_errors, die Standardeinstellung ist OFF, diese Option kann eher helfen, Fehler im Code zu beheben als PHP seine Standardfunktionen bereitstellen zu lassen.
Aus dem Internet gesammelt:
E_NOTICE 表示一般情形不记录,只有程式有错误情形时才用到,例如企图存取一个不存在的变数,或是呼叫 stat() 函式检视不存在的档案。 E_WARNING 通常都会显示出来,但不会中断程式的执行。这对除错很有效。例如:用有问题的常规表示法呼叫 ereg()。 E_ERROR 通常会显示出来,亦会中断程式执行。意即用这个遮罩无法追查到记忆体配置或其它的错误。 E_PARSE 从语法中剖析错误。 E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。 E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。
PHP-Fehlerberichte
Die Datei php.ini enthält viele Konfigurationseinstellungen. Sie sollten Ihre php.ini-Datei bereits eingerichtet und im entsprechenden Verzeichnis abgelegt haben, genau wie bei der Installation von PHP unter Linux wie in der Apache 2-Dokumentation gezeigt. Es gibt zwei Konfigurationsvariablen, die Sie beim Debuggen von PHP-Anwendungen beachten sollten. Hier sind die beiden Variablen und ihre Standardwerte:
display_errors = Off error_reporting = E_ALL
Die aktuellen Standardwerte dieser beiden Variablen können durch Suchen in der Datei php.ini gefunden werden. Der Zweck der Variable display_errors liegt auf der Hand – sie teilt PHP mit, ob Fehler angezeigt werden sollen. Der Standardwert ist Aus. Um den Entwicklungsprozess jedoch zu vereinfachen, setzen Sie diesen Wert auf Ein:
display_errors = On
Der Standardwert der Variable error_reporting ist E_ALL. Diese Einstellung zeigt alles von schlechten Codierungspraktiken über harmlose Tipps bis hin zu Fehlern. E_ALL Es ist etwas zu granular für die Entwicklung, da es auch Hinweise auf kleine Dinge (z. B. nicht initialisierte Variablen) auf dem Bildschirm anzeigt, was die Ausgabe des Browsers durcheinander bringt. Ich möchte nur Fehler und schlechte Codierungspraktiken sehen, aber nicht Harmloser Hinweis. Ersetzen Sie also bitte den Standardwert von error_reporting durch den folgenden Wert:
error_reporting = E_ALL & ~E_NOTICE
Starten Sie Apache neu und schon sind Sie fertig. Als Nächstes erfahren Sie, wie Sie dasselbe auf Apache tun.
Fehlerberichterstattung auf dem Server
hängt davon ab, was Apache tut. Das Aktivieren der Fehlerberichterstattung in PHP funktioniert möglicherweise nicht, da möglicherweise mehrere PHP-Versionen auf dem Computer vorhanden sind. Manchmal ist es schwer zu sagen, welche PHP-Version
Apache verwendet, da Apache nur eine php.ini-Datei betrachten kann. Ich bin mir nicht sicher, welchen Apache verwendet Die Konfiguration der Datei php.ini selbst stellt ein Sicherheitsproblem dar. Es gibt jedoch eine Möglichkeit, PHP-Variablen in Apache so zu konfigurieren, dass die richtige Fehlerstufe eingestellt wird.
Außerdem ist es gut zu wissen, wie man diese Konfigurationsvariablen auf der Serverseite so setzt, dass sie die php.ini-Datei überschreiben oder vorwegnehmen und so ein höheres Maß an Sicherheit bieten.
Bei der Konfiguration von Apache sollten Sie bereits mit der Grundkonfiguration in der Datei http.conf in 14877208001853a2f96d4f134db446ac/conf/httpd.conf vertraut gemacht haben.
Um das zu tun, was bereits in der php.ini-Datei erledigt ist, fügen Sie die folgenden Zeilen zu httpd.conf hinzu und überschreiben alle php.ini-Dateien:
php_flag display_errors on php_value error_reporting 2039
Dadurch werden alle Einstellungen für display_errors im Flag der php.ini-Datei überschrieben der Wert von error_reporting. Wert 2039 Stellt E_ALL und ~E_NOTICE dar. Wenn Sie lieber E_ALL verwenden möchten, legen Sie den Wert auf 2047 fest. Auch hier müssen Sie Apache noch neu starten.
Als nächstes testen Sie die Fehlerberichterstattung auf dem Server.
In Bezug auf die Funktion error_reporting() kann sie einige Fehlermeldungen abschirmen, aber Fehler, die durch den PHP-Kern verursacht werden, können nicht abgeschirmt werden, da Fehler, die durch den PHP-Kern verursacht werden, direkt dazu führen, dass die Kompilierung der PHP-Datei fehlschlägt, weil das Schreibformat dies nicht tut Folgen Sie PHP. Fehler, die durch das Schreiben von Codierungsregeln verursacht werden, können nicht blockiert werden.
Häufige Fehler sind wie folgt:
// Turn off all error reporting;关闭所有的错误 error_reporting(0); // Report simple running errors;报告一个简单的运行错误 error_reporting(E_ERROR | E_WARNING | E_PARSE); // Reporting E_NOTICE can be good too (to report uninitialized // variables or catch variable name misspellings …);包括报告一些未初始化的变量或捕捉变量名的拼写错误 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Report all errors except E_NOTICE // This is the default value set in php.ini;报告所有的错误但不包括E_NOTICE error_reporting(E_ALL ^ E_NOTICE); // Report all PHP errors (bitwise 63 may be used in PHP 3);报告所有的错误 error_reporting(E_ALL); // Same as error_reporting(E_ALL);同上 ini_set(’error_reporting’, E_ALL);
Empfohlenes Lernen: „ PHP-Video-Tutorial “
Das obige ist der detaillierte Inhalt vonSo ändern Sie die Fehlerstufe in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!