PHP 5 Errore di disabilitare i rigidi standard
Domanda
Devo installare il mio script PHP in alto per disattivare la segnalazione degli errori per gli standard rigorosi.
Qualcuno può aiutarmi?
Soluzione
Vuoi disattivare la segnalazione degli errori, o semplicemente impedire all'utente di vederlo? Di solito è una buona idea per registrare gli errori, anche su un sito di produzione.
# in your PHP code:
ini_set('display_errors', '0'); # don't show any errors...
error_reporting(E_ALL | E_STRICT); # ...but do log them
Essi verranno registrati al vostro registro di sistema standard, oppure utilizzare la direttiva error_log
per specificare esattamente dove si vuole errori di andare.
Altri suggerimenti
Per nessun errore.
error_reporting(0);
o semplicemente non rigorosa
error_reporting(E_ALL ^ E_STRICT);
e se mai desidera visualizzare di nuovo tutti gli errori, utilizzare
error_reporting(-1);
Tutte le soluzioni di cui sopra sono corrette. Ma, quando stiamo parlando di una normale applicazione PHP, devono incluso in ogni pagina, che richiede. Un modo per risolvere questo, è attraverso .htaccess
alla cartella principale.
Proprio per nascondere gli errori. [Mettere una delle linee followling nel file]
php_flag display_errors off
o
php_value display_errors 0
Avanti, per impostare la segnalazione degli errori
php_value error_reporting 30719
Se vi state chiedendo come il valore 30719
venuto, E_ALL (32767), E_STRICT (2048) sono in realtà costante che detengono valore numerico e (32767 - 2048 = 30719
)
Il valore predefinito di error_reporting bandiera è E_ALL & ~ E_NOTICE se non impostata in php.ini. Ma in qualche installazione (in particolare le installazioni destinate ambienti di sviluppo) ha E_ALL | E_STRICT impostare come valore questo flag (questo è il valore consigliato durante lo sviluppo ). In alcuni casi, specialmente quando ti consigliamo di eseguire alcuni progetti open source, che è stato sviluppato prima di PHP 5.3 era e non ancora aggiornato con le migliori pratiche definite da PHP 5.3, nel vostro ambiente di sviluppo, probabilmente incorrere in ottenere un certo messaggi come si stanno ottenendo. Il modo migliore per far fronte a questa situazione, è quello di impostare solo E_ALL , come il valore di error_reporting di bandiera, sia in php.ini o in codice (probabilmente in un front-controller come index.php in web-root come segue:
if(defined('E_STRICT')){
error_reporting(E_ALL);
}
In serie php.ini:
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
WordPress
Se si lavora in un ambiente wordpress, Wordpress imposta il livello di errore nel file wp-includes / load.php nella funzione wp_debug_mode()
. Quindi devi cambiare il livello dopo questa funzione è stata chiamata (non in un file controllato in git così che è solo lo sviluppo), o sia modificare direttamente la chiamata error_reporting()
non ho visto una risposta che è pulito e adatto per il software pronto per la produzione, così qui va:
/*
* Get current error_reporting value,
* so that we don't lose preferences set in php.ini and .htaccess
* and accidently reenable message types disabled in those.
*
* If you want to disable e.g. E_STRICT on a global level,
* use php.ini (or .htaccess for folder-level)
*/
$old_error_reporting = error_reporting();
/*
* Disable E_STRICT on top of current error_reporting.
*
* Note: do NOT use ^ for disabling error message types,
* as ^ will re-ENABLE the message type if it happens to be disabled already!
*/
error_reporting($old_error_reporting & ~E_STRICT);
// code that should not emit E_STRICT messages goes here
/*
* Optional, depending on if/what code comes after.
* Restore old settings.
*/
error_reporting($old_error_reporting);