Выключить предупреждения и ошибки на php / mysql

Я получаю ожидаемые уведомления и предупреждения и хотел бы отключить их в своем php-файле. ошибки:

Warning: fsockopen() 

и уведомления:

 Notice: A non well formed numeric value encountered in 

Я планирую использовать cron для этого скрипта php и не хочу, чтобы какие-либо ошибки или уведомления регистрировались в любом месте.

Solutions Collecting From Web of "Выключить предупреждения и ошибки на php / mysql"

Когда вы уверены, что ваш скрипт отлично работает, вы можете избавиться от предупреждения и уведомлений, как это: поместите эту строку в начало вашего php-скрипта:

 error_reporting(E_ERROR); 

До этого, при работе над вашим скриптом, я бы посоветовал правильно отладить ваш сценарий, чтобы все уведомления или предупреждения исчезали один за другим. Поэтому вы должны сначала установить его как можно более подробно:

 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 

UPDATE: как регистрировать ошибки, а не отображать их. Как было предложено в комментариях, лучшим решением является запись ошибок в файл, поэтому только разработчик php видит сообщения об ошибках, а не пользователи. Возможная реализация осуществляется через файл .htaccess, полезный, если у вас нет доступа к файлу php.ini ( источник ).

 # supress php errors php_flag display_startup_errors off php_flag display_errors off php_flag html_errors off php_value docref_root 0 php_value docref_ext 0 # enable PHP error logging php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log # prevent access to PHP error log <Files PHP_errors.log> Order allow,deny Deny from all Satisfy All </Files> 

Подготовьте функции символом «@», чтобы подавить определенные ошибки, в отличие от отключения всех отчетов об ошибках.

Дополнительная информация: http://php.net/manual/en/language.operators.errorcontrol.php

PHP поддерживает один оператор управления ошибкой: знак at (@). При добавлении выражения в PHP любые сообщения об ошибках, которые могут быть сгенерированы этим выражением, будут игнорироваться.

@fsockopen();

Всегда показывать ошибки на сервере тестирования. Никогда не показывать ошибки на рабочем сервере.

Напишите сценарий, чтобы определить, находится ли страница на локальном, тестирующем или живом сервере, и установите $ state в «local», «testing» или «live». Затем:

 if( $state == "local" || $state == "testing" ) { ini_set( "display_errors", "1" ); error_reporting( E_ALL & ~E_NOTICE ); } else { error_reporting( 0 ); } 

PHP error_reporting ссылка:

 // 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 // This is the default value set in php.ini 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); 

вы можете установить тип сообщения об ошибках, который вам нужен, в php.ini или с помощью функции error_reporting () поверх вашего скрипта.

Если по какой-либо причине вы не можете добраться до файла php.ini, отключите ошибки для stdout ( display_errors ) в файле .htaccess в любом каталоге, добавив следующую строку:

php_flag display_errors off

Кроме того, вы можете добавить журнал ошибок в файл:

php_flag log_errors on