Notice: Constant DIR_FS_CATALOG already defined
我已经在php.ini
中注解掉了display_errors
,但不起作用。
如何使PHP不将这些内容输出到浏览器?
更新
我把display_errors = Off
放在那里,但它仍然在报告这样的通知,
这是PHP5.3的一个问题吗?
报告大量的调用堆栈也..
Notice: Constant DIR_FS_CATALOG already defined
我已经在php.ini
中注解掉了display_errors
,但不起作用。
如何使PHP不将这些内容输出到浏览器?
更新
我把display_errors = Off
放在那里,但它仍然在报告这样的通知,
这是PHP5.3的一个问题吗?
报告大量的调用堆栈也..
15条答案
按热度按时间mpgws1up1#
您可以通过使用
error_reporting
ini设置或error_reporting()
函数将错误报告级别设置为E_ALL & ~E_NOTICE;
来禁用通知。然而,通知是令人讨厌的(我可以partly sympathize),但它们有其目的。您不应该定义一个常量两次,第二次不起作用,常量将保持不变!
4uqofj5v2#
对于命令行php,设置
在
/etc/php5/cli/php.ini
中然后,执行命令
php
将省略这些通知。8iwquhpp3#
在代码中使用了此行
我想这对你来说已经满了。
2wnc66cl4#
我不想在代码中设置
error_reporting
。但有一次,一个遗留产品,有太多的通知,它们必须被隐藏起来。因此,我使用以下代码片段来设置
error_reporting
的服务器端配置值,但减去E_NOTICE
。现在可以在
php.ini
或.htaccess
中进一步配置错误报告设置。只有通知将始终被禁用。x6yk4ghg5#
您正在寻找:
zvokhttg6#
我最近发现了这个小把戏。在可能产生警告/错误的行首点击@。
就像变魔术一样,他们消失了。
2nc8po8w7#
对于PHP代码:
对于
php.ini
配置:2ul0zpep8#
您可以在脚本中设置
ini_set('display_errors',0);
或定义要使用error_reporting()
显示的错误。gj3fmq9x9#
错误报告(E_ERROR);对我有效。
ss2ws0br10#
通过不导致错误:
如果您真的必须这样做,请将使用ERROR_REPORTING()的错误报告更改为E_ALL^E_NOTICE。
vs3odd8k11#
使用phpinfo()并搜索
Configuration File (php.ini) Path
以查看使用了哪个php配置文件路径。根据运行环境的不同,PHP可以有多个配置文件。通常,对于控制台,它是:/etc/php5/cli/php.ini
而对于由Apache运行的php,它是:
/etc/php5/apache2/php.ini
然后按您需要的方式设置
error_reporting
:http://www.phpknowhow.com/configuration/php-ini-error-settings/http://www.zootemplate.com/news-updates/how-to-disable-notice-and-warning-in-phpini-file
7ivaypg912#
正如一些人提到的,如果你是代码作者,你应该纠正所有这些错误、通知等,因为从长远来看,这会给你带来更多问题,而不是不修复它们(特别是当你升级操作系统时)。对于您的服务器,您应该只在日志中显示错误,而不是在客户端屏幕上显示错误。
因此,为了避免浏览器中的错误,您可以使用
display_errors
标志,正如您已经找到的那样:现在真正的问题是当您运行其他人的代码时。在这种情况下,每次升级代码时,修改代码都可能被覆盖。这使得维护该代码变得单调乏味。
在我的例子中,我使用
crontab
运行PHP,以便偶尔运行wp-cron.php
脚本。我收到了发送到我的电子邮件中的错误,当你每10分钟收到一封电子邮件时,这就变得乏味了!不过,在这种情况下,WordPress系统有一个包含WP_DEBUG
的配置文件,并且它们调用error_reporting()
函数,因此尝试在命令行上更改error_reporting
变量将不起作用。相反,您必须编辑根文件夹中的wp-config.php
文件,并确保WP_DEBUG
设置为false
。否则,您将一直收到所有这些警告和通知。umuewwlo13#
如果从命令行运行,则可以执行以下操作:
php -d display_errors="0" script.php 2>/dev/null
您必须包括-d display_error=“0”以及将stderr重定向为空、奇怪
kkbh8khc14#
您可以使用以下命令检查常量是否已定义:
ycggw6v215#
我相信注解掉php.ini中的DISPLAY_ERROR是不会起作用的,因为默认设置是开的。您必须将其设置为“OFF”。
不要忘记重新启动Apache来应用配置更改。
还要注意,虽然您可以在运行时设置DISPLAY_ERROR,但在这里更改它不会影响致命错误。
正如其他人所指出的,理想情况下,在开发期间,您应该在尽可能高的级别运行ERROR_REPORTING,并启用DISPLAY_ERROR。虽然刚开始的时候很烦人,但这些错误、警告、通知和严格的编码建议加在一起,会让你成为一名更好的程序员。