我收到预期的通知和警告,并希望关闭我的PHP文件。错误是:关闭在php/mysql的警告和错误
Warning: fsockopen()
和注意事项有:
Notice: A non well formed numeric value encountered in
我计划使用cron这个PHP脚本,不想取得任何记录的所有错误或通知。
我收到预期的通知和警告,并希望关闭我的PHP文件。错误是:关闭在php/mysql的警告和错误
Warning: fsockopen()
和注意事项有:
Notice: A non well formed numeric value encountered in
我计划使用cron这个PHP脚本,不想取得任何记录的所有错误或通知。
当你确定你的脚本是完美的工作,你可以摆脱警告和通知是这样的:将这个线在你的PHP脚本的开头:
error_reporting(E_ERROR);
在此之前,在工作时,你的脚本,我会建议你正确调试你的脚本,以便所有的通知或警告消失一个接一个。 所以,你应该首先将其设置为冗长尽可能与:
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
UPDATE:如何登录,而不是显示他们 正如意见提出错误,更好的方法是这样只记录错误到文件PHP开发人员看到错误消息,而不是用户。 可能的实现方式是通过.htaccess文件,如果您无权访问php.ini文件(source),则该文件很有用。
# 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>
不要这样做。抑制所有错误是一个可怕的想法。 – ceejayoz 2009-10-29 18:41:56
你正在说话,好像背诵一个口头禅。在这个特定的用例中,这正是用户想要的。如果他想要一个测井系统,他会问这个问题。 – pixeline 2009-10-29 19:31:35
我同意ceejayoz和pixeline。但是,只应将生产环境中的error_reporting(0)设置为安全措施,否则关键信息不会被错误地泄露给恶意用户。使用error_reporting(0)'忽略错误'会带来导致不好事情的高风险。我知道这是作者所要求的,但我会反对。 – 2009-10-29 19:53:25
您可以设置错误类型报告,你在php.ini或使用的error_reporting()函数在脚本的顶部需要。
使用'@'符号来预置函数来抑制某些错误,而不是关闭所有错误报告。
更多信息:http://php.net/manual/en/language.operators.errorcontrol.php
PHP支持一个错误控制运算符:at符号(@)。当在PHP中添加表达式时,可能会忽略可能由该表达式生成的任何错误消息。
@fsockopen();
这通常是一个更好的解决方案,用于生产代码,恕我直言 – billrichards 2014-03-03 18:33:13
也许,“*也许*”,对于一个函数,然而用这个填充你的脚本稍后要求麻烦,因为* something *不起作用,并且你的错误日志是空的。最好的方法是设置一个箱子/开关,以便快速打开和关闭“显示”错误。然后,他们关闭,dev/test可以开启。无论哪种方式,(几乎)总是建议记录到错误日志文件 – James 2014-11-12 20:12:40
始终显示测试服务器上的错误。切勿在生产服务器上显示错误。
编写脚本以确定页面是在本地,测试还是在线服务器上,并将$ 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.ini文件,禁用错误在标准输出(display_errors
)。通过添加以下行的任何目录htaccess文件:
php_flag display_errors off
此外,您可以将错误记录添加到文件:
php_flag log_errors on
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来创建日志文件? tnx – 2015-10-05 05:48:14
@MehdiJ:停止在** error_log中记录错误的PHP **添加此代码'ini_set('log_errors','off');' – 2015-11-04 09:46:21
如果你不想错误通过电子邮件发送给你,你可以将它的输出指向'/ dev/null'。尽管如此,错误通常是有原因的 - 你可能想知道你的cron脚本何时崩溃!尝试优雅地处理错误。 – ceejayoz 2009-10-29 18:43:08
某处相关:http://stackoverflow.com/questions/4330494/preventing-warnings-from-fsockopen – trante 2012-09-07 13:57:55