使PHP始终使用JSON响应,即使在输出错误时也是如此
情景: Ajax调用PHP脚本。答案应始终为JSON格式 问题: 在某些情况下(异常、错误等),不返回Json,只返回简单的纯文本 问题: 我怎样才能强制PHP不管发生什么都返回JSON?但不关闭所有错误和警告 我想到的是:使PHP始终使用JSON响应,即使在输出错误时也是如此,php,json,error-handling,Php,Json,Error Handling,情景: Ajax调用PHP脚本。答案应始终为JSON格式 问题: 在某些情况下(异常、错误等),不返回Json,只返回简单的纯文本 问题: 我怎样才能强制PHP不管发生什么都返回JSON?但不关闭所有错误和警告 我想到的是: 设置错误处理程序 设置异常处理程序 如何强制一些错误(如解析错误)输出JSON格式 PHP5.x的: set\u exception\u handle捕获异常 设置错误处理程序以捕获错误 无法捕获解析错误。从: 用户定义的函数无法处理以下错误类型:E_错误、E_解析、E
- 设置错误处理程序
- 设置异常处理程序
如何强制一些错误(如解析错误)输出JSON格式 PHP5.x的:
set\u exception\u handle
捕获异常设置错误处理程序以捕获错误
无法捕获解析错误。从:
用户定义的函数无法处理以下错误类型:E_错误、E_解析、E_核心错误、E_核心警告、E_编译错误、E_编译警告和大多数E_错误
对于PHP7.x:
所有错误都是可捕获的,因此您可以将php脚本封装在
try {
// your app here
} catch (Throwable $t) {
// convert it to json
}
对于任何php版本:
无法处理直接从web服务器发送的响应,例如404
,504
您可以做的最好的事情是检查javascript中的响应代码,并且只处理200个响应,您可以在php脚本中完全控制这些响应。在ajax调用中使用contentType对于异常,您可以确保将所有代码包装在try中,捕获块并确保在捕获任何内容时输出JSON。在可能的情况下,您应该始终检查错误并进行相应的处理。如果遇到错误,您可以进一步抛出异常,然后在catch块中捕获并处理这些错误。您可以使用try…catch…finally块。更多信息请参阅。