Eu tenho algum código PHP. Quando o executo, uma mensagem de aviso aparece.
Como posso remover / suprimir / ignorar essas mensagens de aviso?
php
warnings
error-reporting
Alireza
fonte
fonte
Respostas:
Você realmente deve corrigir o que está causando o aviso, mas pode controlar a visibilidade dos erros com
error_reporting()
. Para pular mensagens de aviso, você pode usar algo como:fonte
E_ALL ^ E_WARNING
, ativar todos os relatórios de erros, além de avisos, parece ser uma opção melhor para argumentarerror_reporting
.Você pode colocar um @ na frente da sua chamada de função para suprimir todas as mensagens de erro.
fonte
dns_get_record
lançarão avisos. Seu código pode compensar o aviso, mas ainda o lança. Desativar o relatório de erros funciona no servidor de produção, mas não no servidor de desenvolvimento. Se você estiver gerando conteúdo XML, o aviso fará com que o navegador não seja renderizado porque o servidor está enviando XML malformado causado pelo aviso. Às vezes, você quer isso em desenvolvimento, mas não por algo causado por uma falha temporária na pesquisa de DNS que você já compensa.Para suprimir avisos e deixar todos os outros relatórios de erros ativados:
fonte
Se você não deseja mostrar avisos e erros, use
Relatório de Erros - Manual do PHP
fonte
Se você deseja suprimir os avisos e alguns outros tipos de erro (por exemplo, avisos) enquanto exibe todos os outros erros, é possível:
fonte
no Core Php para ocultar o conjunto de mensagens de aviso error_reporting (0) na parte superior do arquivo de inclusão comum ou arquivo individual.
No Wordpress ocultar Avisos e avisos, adicione o seguinte código no arquivo wp-config.php
fonte
Não estou respondendo exatamente à pergunta, mas acho que esse é um compromisso melhor em algumas situações:
Eu recebi uma mensagem de aviso como resultado de uma instrução printf () em uma biblioteca de terceiros. Eu sabia exatamente qual era a causa - uma solução temporária enquanto os terceiros corrigiam seu código. Concordo que os avisos não devem ser suprimidos, mas não pude demonstrar meu trabalho a um cliente com a mensagem de aviso aparecendo na tela. Minha solução:
O aviso ainda estava na fonte da página como um lembrete para mim, mas invisível para o cliente.
fonte
ob_start()
eob_end_clean()
em vez disso. Dessa forma, o material nem é enviado ao navegador (o que ocorre aqui).Eu faço isso da seguinte maneira no meu php.ini :
Isso registra apenas erros fatais e nenhum aviso.
fonte
Eu acho que a melhor solução é a configuração do .htaccess. Dessa forma, você não precisa alterar o código do aplicativo. Aqui estão as diretrizes para o Apache2
fonte
Você pode suprimir o aviso usando error_reporting, mas a melhor maneira é corrigir o script em primeiro lugar.
Se você não souber como, edite sua pergunta e mostre-nos a linha em questão e o aviso exibido.
fonte
Já existe uma resposta com o Operador de controle de erros, mas falta explicação. Você pode usar o
@
operador com todas as expressões e oculta erros (exceto Erros Fatais).Para depuração, é um método rápido e perfeito. Mas você nunca deve usá-lo na produção nem incluir permanentemente na sua versão local. Isso lhe dará muita irritação desnecessária.
Você deve considerar:
1. Erro ao relatar as configurações conforme mencionado na resposta aceita.
ou das configurações do PHP INI
2. Capturando exceções
fonte
Para ignorar todos os avisos, use este exemplo, na parte superior do seu código:
fonte