Syntax error_reporting(report_level) Wenn die Parameterebene nicht angegeben ist, wird die aktuelle Fehlerebene zurückgegeben. Die folgenden Elemente sind mögliche Werte der Ebene: 1 E_ERROR 2 E_WARNING 4 E_PARSE 8 E_NOTICE 16 E_CORE_ERROR 32 E_CORE_WARNING 64 E_COMPILE_ERROR 128 E_COMPILE_WAR NING 256 E_USER_ERROR 512 E_USER_WARNING 1024 E_USER_NOTICE 2047 E_ALL 2048 E_STRICT E_NOTICE gibt an, dass die normale Situation nicht aufgezeichnet wird und nur verwendet wird, wenn im Programm eine Fehlersituation vorliegt, z. B. beim Versuch, auf eine nicht vorhandene Variable zuzugreifen oder die aufzurufen stat()-Funktion zum Anzeigen nicht vorhandener Variablendateien. E_WARNING wird normalerweise angezeigt, unterbricht jedoch nicht die Programmausführung. Dies ist nützlich zum Debuggen. Beispiel: Aufruf von ereg() mit der problematischen regulären Notation. E_ERROR wird normalerweise angezeigt und unterbricht die Programmausführung. Das bedeutet, dass Speicherkonfigurations- oder andere Fehler über diese Maske nicht nachvollzogen werden können. E_PARSE Analysiert Fehler aus der Syntax. E_CORE_ERROR Ähnlich wie E_ERROR, umfasst jedoch keine durch den PHP-Kern verursachten Fehler. E_CORE_WARNING Wie E_WARNING, enthält jedoch keine PHP-Core-Fehlerwarnungen. Fehlerberichterstattung für PHP In der Datei php.ini gibt es viele Konfigurationseinstellungen. Sie sollten Ihre php.ini-Datei bereits eingerichtet und im entsprechenden Verzeichnis abgelegt haben, wie in der Dokumentation zur Installation von PHP und Apache 2 unter Linux gezeigt. Es gibt zwei Konfigurationsvariablen, die Sie beim Debuggen von PHP-Anwendungen beachten sollten. Im Folgenden sind diese beiden Variablen und ihre Standardwerte aufgeführt: display_errors = Off Error_reporting = E_ALL Durch Festlegen der php.ini Die aktuellen Standardwerte dieser beiden Variablen finden Sie, indem Sie in der Datei nach ihnen suchen. 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, legen Sie diesen Wert auf fest
Ein: display_errors = Ein 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 ist für Entwicklungszwecke etwas zu granular, 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 keine harmlosen Tipps. Bitte ersetzen Sie es durch die folgenden Werte
Der Standardwert von error_reporting: error_reporting = E_ALL & ~E_NOTICE Starten Sie Apache neu und alles ist eingestellt. Als Nächstes erfahren Sie, wie Sie dasselbe auf Apache tun. Fehlerberichterstattung auf dem Server Abhängig davon, was Apache tut, funktioniert das Aktivieren der Fehlerberichterstattung in PHP möglicherweise nicht, da es möglicherweise mehrere PHP-Versionen gibt. Manchmal ist es schwer zu sagen, welche PHP-Version Apache verwendet, da Apache nur eine php.ini betrachten kann
dokumentieren. Nicht zu wissen, welche php.ini-Datei Apache verwendet, um sich selbst zu konfigurieren, 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 Datei php.ini ü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 http.conf-Datei in /conf/httpd.conf vertraut sein. Um das zu tun, was Sie bereits in der php.ini-Datei getan haben, fügen Sie die folgenden Zeilen zu httpd.conf hinzu und überschreiben alle php.ini-Dateien: php_flag display_errors auf php_value error_reporting 2039 Dies überschreibt das bereits gesetzte Flag für display_errors in der php.ini-Datei sowie den Wert von error_reporting. Der Wert 2039 steht für E_ALL & ~E_NOTICE. Wenn Sie lieber E_ALL verwenden möchten, legen Sie den Wert auf fest
2047. Auch hier müssen Sie Apache noch neu starten. Als nächstes müssen wir die Fehlerberichterstattung auf dem Server testen. In Bezug auf die Funktion error_reporting() kann sie einige Fehlermeldungen blockieren, durch den PHP-Kern verursachte Fehler können jedoch nicht blockiert werden, da durch den PHP-Kern verursachte Fehler direkt zur PHP-Dateikompilierung führen fehlgeschlagen, weil das Schreibformat nicht den Kodierungsregeln von PHP entsprach. Fehler können nicht blockiert werden
// 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 这也是php.ini的缺省设置
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);
Nach dem Login kopieren
Das Obige stellt die Verwendung der Funktion error_reporting() in PHP vor (Änderung von PHP, um Fehler zu blockieren), einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.