2016-01-06 65 views
0

我正在用PHP设计一个API,我想知道是否有正确的方式告诉PHP不要写任何东西(不是头文件或课程不是文本.. .. )在回应时通过自己的避免PHP以任何方式干扰响应

我的意思是,PHP通常直接在响应中以HTML文本的形式返回调试消息(错误,警告,通知......),并且如果API返回JSON并且发生错误(或其他),则此JSON将通过PHP消息损坏

我已经在生产模式下设置了error_reporting(0),但我不知道这是否足以避免PHP对任何事情做出响应(并因此破坏输出),并且我想知道是否有更一般的方式告诉PHP将东西写入日志中,而不是将其发送为答案...因为理想情况下,我不想将error_reporting设置为0,理想情况下,我想从日志文件中读取警告/通知,而不是在回答,因为客户还没有准备好处理它。

+1

PHP通常在日志从他们显示在您的浏览器,你会将所有这些错误拆开,检查你的Apache服务器(假设你正在运行它在Apache) – codeninja

+0

@codeninja如果我有'error_reporting(0)'它仍然写在日志中的错误?另外:如果我设置'error_reporting(0)',我是否100%确定PHP将永远不会在我的答案上写任何东西? –

+6

这个问题唯一的**正确**答案是___如果你正确地编写你的代码,那么将不会有错误report___只有无能的___hide错误,而不是解决它们_ – RiggsFolly

回答

3

这样做将设置显示错误关

ini_set('display_errors',0); 

和记录到文件

ini_set('log_errors',1); 

当然它们设置在php.ini文件中的正确方法可以帮助您有一个更好的控制生产中的内容和开发服务器中的内容。

阅读资料这里:

http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors

http://php.net/manual/en/errorfunc.configuration.php#ini.log-errors

+1

使用这种方法是**的incompetant的藏身之处** – RiggsFolly

+0

@CarlosNavarro所以做我这就是为什么我以饱满的错误运行我的测试服务器上 – RiggsFolly

+0

也报告@RiggsFolly我,但可能是你没有考虑到一些特殊情况,当用户输入什么时候触发,或者数据库关闭或者......我想你明白了。不管你想要怎么称呼它,事情是在生产中出现错误报告是无意义的,除非你知道你的代码是完美的。这不是我的情况=) –