如何通过目录禁用错误?
问题描述:
我们正在编写基于库的PHP应用程序,它有很多声明和严格的标准警告。如何通过目录禁用错误?
我们希望通过完整的错误报告来开发我们的应用程序。我们现在不能这样做,因为lib导致很多错误。我们想要抑制这个库中的所有错误,只在我们的开发机器上显示我们的应用程序。
在set_error_handler函数的帮助下,我已经可以实现它了。
是否有任何其他方式来做到这一点可能在php.ini或虚拟主机级别?
答
对于Apache:
的添加到.htaccess文件(或者在虚拟主机配置):
php_value error_reporting 1
但只有当阿帕奇解析URL可以通过用于这种分离。
让你有这样的文件夹:
/www/dir/
/models/
/lib/
而且的.htaccess放在/www/dir/
和lib
。
如果您打电话给URL example.com/dir
,那么.htaccess将被Apache解析并且设置将被设置。
但在'include /lib/some.php'
的情况下 - Apache不会解析lib
和.htaccess
不会产生任何影响。
答
解决问题(如果许可证允许它的库
简答题:没有。
通过检查导致错误的文件的路径来过滤错误与自定义功能和set_error_handler
是最好的,你可以做的。
其他的解决方案,可能会更好,但只在某些条件下(如果存在且具有相同的功能)这个库中自己
- 新版本)
- 禁用错误报告,包括图书馆和后启用它(如果不包括实际使用过程中发生的大多数错误)
答
我发现我之前t的可能前置脚本:php_value auto_prepend_file prepend.php
因此,我可以预先使用我自己的error_handler脚本。这样我就可以通过vhost/php.ini指令触发这个。
感谢您的所有输入。
这将是无用的,因为警告正在库(包括)中发生,'.htaccess'设置仅指在给定目录中直接打开的文件。 – 2011-05-18 20:18:08
@ dev-null-dweller:'.htaccess'文件由apache针对每个请求进行评估,该文件与给定目录中的文件相匹配。一旦它被评估,它并不关心包含哪些其他文件。 – KingCrunch 2011-05-18 20:25:45
@ dev-null-dweller你确定这是正确的吗? – 2011-05-18 20:26:03