如何获取PHP致命错误,警告错误,注意json响应中的错误

时间:2018-01-11 05:52:17

标签: php json

我正在开发一个restApi,我正在使用这个api进行我的移动和web开发。它是用PHP构建的。我需要我的json格式的错误,以便我可以以适当的响应格式将此错误发送给android开发人员他们也可以轻松处理它。因此我们不会在移动应用程序中遇到任何崩溃问题。

这正是我所需要的。

PHP错误:

  

解析错误:语法错误,意外“切换”(T_SWITCH)   第68行/var/www/html/phishem/index.php

需要什么:

  

{error_code:“403”,消息:“解析错误:语法错误,意外   在第68行的/var/www/html/phishem/index.php中'切换'(T_SWITCH)“}

所以我如何在json响应中转换这个php错误。

3 个答案:

答案 0 :(得分:0)

在api代码中你应该掌握php警告和错误,我不认为在前端(Android或IOS)处理php异常和错误是很好的programinig练习

答案 1 :(得分:0)

这种错误是服务器端错误,其中必须通过处理错误而不是将其作为正确的响应来解决。理想情况下,您必须处理/捕获所有可能的错误并给出正确的响应。

OR

您还可以开发服务层(也适用于更安全的架构),它将通过前端和API端之间的请求和响应。在这种情况下,如果服务器响应 500 内部服务器错误,您可以从服务层解析正确的响应消息并返回JSON格式的消息。

答案 2 :(得分:0)

您可以捕获致命错误并输出为JSON(在PHP中):

function my_error_handler(){
    $error = error_get_last();
    header('Content-Type: application/json');
    echo json_encode($error);
}

register_shutdown_function('my_error_handler');

对于非致命错误,您需要添加此

set_error_handler('my_error_handler'); 

此外,您需要禁止默认错误消息:

error_reporting(0);

这些将输出错误,如下面的JSON

{ type : "8", "message" : "Undefined variable: a", "file" : "C:\WWW\index.php", "line" : "2" }