Heim > Backend-Entwicklung > PHP-Tutorial > Verwendung der Funktion error_reporting() in PHP (PHP-Abschirmungsfehler ändern)

Verwendung der Funktion error_reporting() in PHP (PHP-Abschirmungsfehler ändern)

WBOY
Freigeben: 2016-08-08 09:31:53
Original
1242 Leute haben es durchsucht
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.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage