首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >关闭PHP和MySQL上的警告和错误

关闭PHP和MySQL上的警告和错误
EN

Stack Overflow用户
提问于 2009-10-30 02:27:14
回答 5查看 276.3K关注 0票数 53

我收到了预期的通知和警告,并希望在我的PHP文件中将其关闭。错误是:

代码语言:javascript
复制
Warning: fsockopen()

通知如下:

代码语言:javascript
复制
Notice: A non well formed numeric value encountered in

我计划对这个PHP脚本使用cron,不想在任何地方记录任何错误或通知。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-10-30 02:29:41

当您确信您的脚本工作正常时,您可以摆脱如下警告和通知:将以下行放在PHP脚本的开头:

代码语言:javascript
复制
error_reporting(E_ERROR);

在此之前,当使用您的脚本时,我建议您正确地调试您的脚本,以便所有通知或警告逐一消失。

因此,您应该首先使用以下命令将其设置为尽可能详细:

代码语言:javascript
复制
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

更新:如何记录错误而不是显示错误

正如注释中所建议的,更好的解决方案是将错误记录到一个文件中,这样只有PHP开发人员才能看到错误消息,而不是用户。

一种可能的实现是通过.htaccess文件,如果您不能访问php.ini文件(source),该文件将非常有用。

代码语言:javascript
复制
# Suppress 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>
票数 144
EN

Stack Overflow用户

发布于 2010-08-13 01:13:15

始终在测试服务器上显示错误。永远不要在生产服务器上显示错误。

编写脚本以确定页面是在本地服务器、测试服务器还是实时服务器上,并将$state设置为“本地”、“测试”或“实时”。然后:

代码语言:javascript
复制
if( $state == "local" || $state == "testing" )
{
    ini_set( "display_errors", "1" );
    error_reporting( E_ALL & ~E_NOTICE );
}
else
{
    error_reporting( 0 );
}
票数 14
EN

Stack Overflow用户

发布于 2014-03-21 11:48:13

PHP error_reporting参考:

代码语言:javascript
复制
// 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);
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1645661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档