Como é que desligo os avisos de PHP?

Notice: Constant DIR_FS_CATALOG already defined
Já comentei.display_errors em php.ini, mas não está a funcionar.

Como faço o PHP para não enviar tais coisas para navegadores?

actualizar

eu coloquei display_errors = Off lá, mas ainda está relatando tais avisos,

Isto é um problema com o PHP 5.3?

relatando numerosaspilha de chamadas também..

Author: Charles, 2010-05-19

14 answers

Pode marcar display_errors para 0 ou utilizar o error_reporting() função.

No entanto, os avisos são irritantes (em parte simpatizo com ), mas servem um propósito. Você não deve definir uma constante duas vezes, a segunda vez não funcionará e a constante permanecerá inalterada!
 68
Author: Pekka 웃, 2017-05-23 12:26:36

A partir da documentação do PHP ( error_ reporting):

<?php
// Turn off all error reporting
error_reporting(0);
?>

Outras opções interessantes para essa função:

<?php

// 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
error_reporting(E_ALL & ~E_NOTICE);
// For PHP < 5.3 use: E_ALL ^ E_NOTICE

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>
 203
Author: Cristian, 2016-01-18 09:41:17

Para a linha de comandos php, definir

error_reporting = E_ALL & ~E_NOTICE

Em /etc/php5/cli/php.ini

Comando php execução então omite os avisos.

 26
Author: Paul Salber, 2011-11-06 02:18:20
<?php

// 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
error_reporting(E_ALL & ~E_NOTICE);

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Fonte http://php.net/manual/en/function.error-reporting.php

 20
Author: Abhishek Goel, 2014-11-09 05:28:47

Usou Esta Linha No Seu Código

error_reporting(E_ALL ^ E_NOTICE);  
Acho que está cheio para ti.
 5
Author: vicky mahale, 2017-11-13 09:48:12

Pode definir ini_set('display_errors',0); no seu programa ou definir quais os erros que deseja mostrar com error_reporting().

 4
Author: jeroen, 2010-05-19 15:44:41

Não causando os erros:

defined('DIR_FS_CATALOG') || define('DIR_FS_CATALOG', 'whatever');

Se realmente tiver de o fazer, então mude a comunicação de erros usando error_ Reporting() para E_ all^E_NOTICE.

 3
Author: Jonathan Kuhn, 2010-05-19 15:46:00

Estás à procura de:

php -d error_reporting="E_ERROR | E_WARNING | E_PARSE"
 3
Author: Christian Tismer, 2014-10-07 20:06:35

Para o código PHP:

<?php
error_reporting(E_ALL & ~E_NOTICE);

Para php.ini Configuração:

error_reporting = E_ALL & ~E_NOTICE
 2
Author: Nabi K.A.Z., 2017-11-09 13:14:48

Pode verificar se a constante já está definida usando:

<?php
if (!defined('MYCONST'))
    define('MYCONST', 'Weeha!');
?>
 0
Author: Thiago Belem, 2010-05-19 15:46:09
Eu acredito que comentando os erros no php.ini não vai funcionar porque o padrão Está ligado. Em vez disso, tens de a pôr a funcionar.

Não se esqueça de reiniciar o Apache para aplicar as alterações de configuração.

Lembre-se também que, embora possa definir os erros do 'display_ erros' no tempo de execução, alterá-los aqui não afecta os erros fatais.

Tal como referido por outros, idealmente durante o desenvolvimento, deverá executar com o relatório error_ ao mais alto nível possível e os erros do 'display_ erros' activados. Enquanto irritante quando você começa primeiro, esses erros, avisos, avisos e conselhos de codificação rigorosos tudo somam e permitem que você seja um codificador melhor.

 0
Author: AllenJB, 2010-05-19 15:58:05
Descobri este truque recentemente. Bater um @ no início de uma linha que pode produzir um aviso/erro. Como se por magia dissaparem.
 0
Author: DrLazer, 2010-05-19 16:00:57

Use o phpinfo () e procure por Configuration File (php.ini) Path para ver qual é a localização do ficheiro de configuração do php. PHP pode ter vários arquivos de configuração dependendo do ambiente que está executando. Normalmente, para consola é:

/etc/php5/cli / php.ini

E para o php gerido pelo apache é:

/etc/php5/apache2 / php.ini

E, em seguida, definir error_reporting da maneira que você precisa it:

Http://www.phpknowhow.com/configuration/php-ini-error-settings/ http://www.zootemplate.com/news-updates/how-to-disable-notice-and-warning-in-phpini-file

 0
Author: MilanG, 2016-02-04 07:56:40

Como mencionado por alguns e se você é o autor do código, você deve corrigir todos esses erros, avisos, etc. porque ele vai causar mais problemas para você longos termos do que não corrigi-los (especialmente quando você atualizar o seu OS). Para o seu servidor, você deve ter erros exibidos apenas em seus logs, não na tela do cliente.

Assim, para evitar os erros no seu navegador, use a bandeira display_errors como já encontrou:

display_errors = Off
Agora o verdadeiro problema é quando estás a gerir alguém. outro código. Nesse caso, modificar o código é provável que seja substituído cada vez que você atualizar esse código. Torna-se entediante manter esse código.

No meu caso, estou a executar o PHP com {[[2]} para ter o script wp-cron.php a correr de vez em quando. Eu estava recebendo erros enviados para meus e-mails, o que se torna tedioso quando você recebe um e-mail a cada 10 minutos! Nesse caso, porém, o sistema Wordpress tem um arquivo de configuração que inclui um WP_DEBUG e eles chamam a função error_reporting() de modo a tentar mudar o error_reporting a variável na linha de comando não funciona. Em vez disso, terá de editar o ficheiro wp-config.php na pasta de base e certificar-se de que o WP_DEBUG está definido em false. Caso contrário, você vai receber todos esses avisos e avisos o tempo todo.

 0
Author: Alexis Wilke, 2017-07-04 06:44:28