Mostra tutti gli errori in PHP

Subodh Poudel 30 gennaio 2023
  1. Usa la funzione error_reporting('E_ALL') e la funzione ini_set() insieme alla direttiva display_errors per visualizzare un avviso di errore
  2. Usa la funzione error_reporting('-1') e la funzione ini_set() insieme alle direttive display_errors e display_startup_errors per visualizzare l’errore
  3. Modifica le direttive nel file php.ini per visualizzare tutti gli errori, inclusi gli errori di analisi in PHP
Mostra tutti gli errori in PHP

Introdurremo un modo per visualizzare gli errori nello script PHP usando la funzione error_reporting() e la funzione ini_set(). Il primo metodo segnala l’errore mentre il secondo metodo sovrascrive il file php.ini o il file di configurazione di Apache e si attiva per visualizzare gli errori solo per lo script corrente.

Mostreremo un altro modo per visualizzare gli errori PHP usando le stesse funzioni: la funzione error_reporting() e la funzione ini_set() del primo metodo. Il punto critico che differenzia questo metodo dal primo è che usa un’altra funzione ini_set() con la direttiva display_startup_errors e la funzione error_reporting() accetta un valore intero come argomento.

Introdurremo una soluzione permanente per visualizzare tutti gli errori PHP, cambiando la configurazione nel file php.ini. I due metodi sopra menzionati non aiuteranno a visualizzare gli errori di analisi come parentesi graffe e punti e virgola mancanti.

Usa la funzione error_reporting('E_ALL') e la funzione ini_set() insieme alla direttiva display_errors per visualizzare un avviso di errore

Possiamo usare la funzione error_reporting() per segnalare tutti i tipi di errori nello script PHP. Per questo, usiamo la costante denominata E_ALL come argomento nella funzione. Segnala tutti i tipi di errori PHP. E poi, possiamo usare la funzione ini_set() per visualizzare gli errori riportati. La funzione imposta la direttiva display_errors su true. Quindi, imposta la configurazione nel file php.ini per impostare la visibilità degli errori. Tuttavia, il valore originale delle direttive verrà ripristinato nel file php.ini dopo aver eseguito lo script corrente.

Per dimostrazione, scrivi error_reporting(E_ALL) come prima riga del codice dello script. Imposta display_errors su 1 nella funzione ini_set. Echo un messaggio come 'This is a warning errorr'. Usa la funzione include() per includere un file esterno chiamato file.php. Quindi esegui lo script.

L’esempio seguente tenta di visualizzare un errore di avviso in PHP. Questo tipo di errore notifica la presenza di un problema nello script senza interromperne l’esecuzione. L’esempio include il file file.php nello script. Poiché non esiste un file di questo tipo nella cartella principale, lo script non caricherà il file e visualizzerà gli errori. Poiché si tratta di un errore di avvertenza, l’istruzione echo viene eseguita insieme agli errori. Per ulteriori informazioni sulla funzione error_reporting(), visita il manuale PHP

Codice di esempio:

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

Produzione:

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**

Usa la funzione error_reporting('-1') e la funzione ini_set() insieme alle direttive display_errors e display_startup_errors per visualizzare l’errore

Anche la funzione error_reporting() accetta un valore intero come argomento. Possiamo usare questo metodo per visualizzare gli errori in PHP. Ci sono molti livelli di errore in PHP. Il livello -1 denota tutti gli errori PHP. Passare il valore -1 funzionerà nelle future versioni di PHP, anche con nuovi livelli e costanti. A volte, la direttiva display_errors nella funzione ini_set() non sempre gestisce gli errori incontrati all’avvio di PHP. In questi casi, possiamo usare display_startup_errors per visualizzare gli errori.

Ad esempio, imposta le directory della funzione ini_set() come display_startup_errors e display_errors. Impostali in modo che siano true denotando con 1 nella funzione ini_set(). Imposta error_reporting su -1. Assegna un valore di 10 a una variabile $a e stampa una variabile $b.

Nell’esempio seguente, lo script rileva un errore di avviso. Il codice tenta di stampare la variabile non definita. Per saperne di più sulla funzione ini_set(), visita il manuale PHP.

Codice di esempio:

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

Produzione:

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

Modifica le direttive nel file php.ini per visualizzare tutti gli errori, inclusi gli errori di analisi in PHP

Possiamo modificare le direttive nel file php.ini per visualizzare gli errori PHP quando il suddetto non funziona. Il file php.ini contiene le configurazioni predefinite necessarie durante l’esecuzione di uno script PHP. I metodi sopra menzionati cambiano il valore delle direttive solo in runtime mentre la modifica del file php.ini cambia permanentemente i valori. Tuttavia, non dovremmo seguire questa pratica a livello di produzione. Controlla il manuale PHP per saperne di più sul file di configurazione in PHP.

Per cambiare il valore delle direttive del file php.ini, prima individua il file nel tuo sistema. Usa il seguente script.

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

Individua Loaded Configuration File e puoi vedere la posizione del file php.ini. Nel file, individua le direttive display_errors e display_startup_errors e cambia il valore in on. Individua error_reporting e cambia in error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING. Quindi, riavvia il server Web Apache.

Ad esempio, nel file PHP, imposta error_reporting(-1). Assegna un valore Orange alla variabile $a ma non scrivere un punto e virgola dopo di essa. Stampa la variabile in un’altra riga.

Nella sezione di output dell’esempio di codice, viene rilevato e visualizzato l’errore di analisi. Pertanto, la configurazione del file php.ini può visualizzare anche gli errori di analisi.

Esempio di codice:

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

Produzione:

**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

Articolo correlato - PHP Error