Alle Fehler in PHP anzeigen

Subodh Poudel 30 Januar 2023
  1. Verwenden Sie die Funktion error_reporting('E_ALL') und die Funktion ini_set() zusammen mit der Anweisung display_errors, um einen Warnfehler anzuzeigen
  2. Verwendung der Funktion error_reporting('-1') und der Funktion ini_set() zusammen mit den Direktiven display_errors und display_startup_errors zur Fehleranzeige
  3. Ändern Sie die Anweisungen in der Datei php.ini, um alle Fehler anzuzeigen, einschließlich Analysefehler in PHP
Alle Fehler in PHP anzeigen

Wir werden eine Möglichkeit vorstellen, Fehler im PHP-Skript mit der Funktion error_reporting() und der Funktion ini_set() anzuzeigen. Die erste Methode meldet den Fehler, während die zweite Methode die Datei php.ini oder die Apache-Konfigurationsdatei überschreibt und aktiviert wird, um die Fehler nur für das aktuelle Skript anzuzeigen.

Wir werden eine andere Möglichkeit zeigen, PHP-Fehler mit denselben Funktionen anzuzeigen - die Funktion error_reporting() und die Funktion ini_set() wie bei der ersten Methode. Der kritische Punkt, der diese Methode von der ersten unterscheidet, ist, dass sie eine andere Funktion ini_set() mit der Direktive display_startup_errors verwendet und die Funktion error_reporting() einen ganzzahligen Wert als Argument verwendet.

Wir werden eine permanente Lösung einführen, um alle PHP-Fehler anzuzeigen und die Konfiguration in der Datei php.ini zu ändern. Die beiden oben genannten Methoden helfen nicht dabei, die Analysefehler wie fehlende geschweifte Klammern und Semikolons anzuzeigen.

Verwenden Sie die Funktion error_reporting('E_ALL') und die Funktion ini_set() zusammen mit der Anweisung display_errors, um einen Warnfehler anzuzeigen

Mit der Funktion error_reporting() können wir alle Arten von Fehlern im PHP-Skript melden. Dafür verwenden wir die benannte Konstante E_ALL als Argument in der Funktion. Es werden alle Arten von PHP-Fehlern gemeldet. Und dann können wir die Funktion ini_set() verwenden, um die gemeldeten Fehler anzuzeigen. Die Funktion setzt die Direktive display_errors auf true. Daher wird die Konfiguration in der Datei php.ini festgelegt, um die Sichtbarkeit der Fehler festzulegen. Der ursprüngliche Wert der Direktiven wird jedoch nach Ausführung des aktuellen Skripts in der Datei php.ini wiederhergestellt.

Schreiben Sie zur Demonstration das error_reporting(E_ALL) als erste Zeile des Skriptcodes. Setzen Sie in der Funktion ini_set die display_errors auf 1. Echo eine Nachricht wie 'This is a warning errorr'. Verwenden Sie die Funktion include(), um eine externe Datei mit dem Namen file.php einzuschließen. Führen Sie dann das Skript aus.

Das folgende Beispiel versucht, einen Warnfehler in PHP anzuzeigen. Dieser Fehlertyp weist darauf hin, dass im Skript ein Problem vorliegt, ohne dass das Skript ausgeführt werden kann. Das Beispiel enthält die Datei file.php im Skript. Da sich keine solche Datei im Stammordner befindet, lädt das Skript die Datei nicht und zeigt die Fehler an. Da dies ein Warnfehler ist, wird die Anweisung echo zusammen mit den Fehlern ausgeführt. Weitere Informationen zur Funktion error_reporting() finden Sie im PHP-Handbuch.

Beispielcode:

# php 7.*
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo "This is a warning error";
include ("file.php");
?>

Ausgabe:

This is a warning error 
**Warning**: include(file.php): failed to open stream: No such file or directory in **/var/www/html/index.php** on line **5** 
 
**Warning**: include(): Failed opening 'file.php' for inclusion (include_path='.:/usr/share/php') in **/var/www/html/index.php** on line **5**

Verwendung der Funktion error_reporting('-1') und der Funktion ini_set() zusammen mit den Direktiven display_errors und display_startup_errors zur Fehleranzeige

Die Funktion error_reporting() verwendet ebenfalls einen ganzzahligen Wert als Argument. Wir können diese Methode verwenden, um Fehler in PHP anzuzeigen. Es gibt viele Fehlerstufen in PHP. Die Stufe -1 kennzeichnet alle PHP-Fehler. Das Übergeben des Werts -1 funktioniert in zukünftigen Versionen von PHP auch mit neuen Ebenen und Konstanten. Manchmal behandelt die Direktive display_errors in der Funktion ini_set() nicht immer die Fehler, die beim Starten von PHP auftreten. In solchen Fällen können wir display_startup_errors verwenden, um die Fehler anzuzeigen.

Setzen Sie beispielsweise die Verzeichnisse der Funktion ini_set() auf display_startup_errors und display_errors. Setzen Sie sie in der Funktion ini_set() auf true und bezeichnen Sie sie mit 1. Setzen Sie error_reporting auf -1. Weisen Sie einer Variablen $a den Wert 10 zu und drucken Sie eine Variable $b.

Im folgenden Beispiel tritt im Skript ein Benachrichtigungsfehler auf. Der Code versucht, die undefinierte Variable zu drucken. Weitere Informationen zur Funktion ini_set() finden Sie im PHP-Handbuch.

Beispielcode:

#php 7.x
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
$a = 10;
echo $b;
?>

Ausgabe:

**Notice**: Undefined variable: b in **/var/www/html/index.php** on line **6**

Ändern Sie die Anweisungen in der Datei php.ini, um alle Fehler anzuzeigen, einschließlich Analysefehler in PHP

Wir können die Anweisungen in der Datei php.ini so ändern, dass PHP-Fehler angezeigt werden, wenn die oben genannten nicht funktionieren. Die Datei php.ini enthält die Standardkonfigurationen, die beim Ausführen eines PHP-Skripts erforderlich sind. Die oben genannten Methoden ändern den Wert der Direktiven nur zur Laufzeit, während durch Ändern der Datei php.ini die Werte dauerhaft geändert werden. Wir sollten diese Praxis jedoch nicht auf Produktionsebene befolgen. Überprüfen Sie das PHP-Handbuch, um mehr über die Konfigurationsdatei in PHP zu erfahren.

Um den Wert der Direktiven der Datei php.ini zu ändern, suchen Sie zunächst die Datei in Ihrem System. Verwenden Sie das folgende Skript.

#php 7.x
<?php
phpinfo();
?>

Suchen Sie Loaded Configuration File, und Sie können den Speicherort der Datei php.ini sehen. Suchen Sie in der Datei die Anweisungen display_errors und display_startup_errors und ändern Sie den Wert in on. Suchen Sie error_reporting und wechseln Sie zu error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING. Starten Sie dann den Apache-Webserver neu.

Setzen Sie beispielsweise in der PHP-Datei error_reporting(-1). Weisen Sie der Variablen $a den Wert Orange zu, schreiben Sie jedoch kein Semikolon danach. Drucken Sie die Variable in einer anderen Zeile.

Im Ausgabeabschnitt des Codebeispiels wird der Analysefehler festgestellt und angezeigt. Daher kann beim Konfigurieren der Datei php.ini auch die Analysefehler angezeigt werden.

Codebeispiel:

#php 7.x
<?php
error_reporting(-1);
$a = "Orange"
echo $a;
?>

Ausgabe:

**Parse error**: syntax error, unexpected 'echo' (T_ECHO) in **/var/www/html/index.php** on line **6**
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Verwandter Artikel - PHP Error