PHP JSON to array - 从PHP脚本中返回JSON

PHP header json / php / json / header

我想从一个PHP脚本中返回JSON。

dakab



Answer #1

这个问题得到了很多答案,但没有一个答案涵盖了返回干净的JSON的整个过程,其中包含了防止JSON响应畸形的所有要求。


/* * returnJsonHttpResponse * @param $success: Boolean * @param $data: 对象或数组 */
function returnJsonHttpResponse($success, $data)
{
    // 删除任何可能创建无效 JSON 的字符串
    // 如 PHP 通知、警告、日志...
    ob_clean();

    // 这将清理任何先前添加的标题,以开始清理
    header_remove(); 

    // 设置内容类型为 JSON 和字符集
    //(字符集可以设置为其他内容)
    header("Content-type: application/json; charset=utf-8");

    // 设置你的 HTTP 响应代码,2xx = SUCCESS,
    // 其他的都会出错,参考 HTTP 文档
    if ($success) {
        http_response_code(200);
    } else {
        http_response_code(500);
    }
    
    // 将您的 PHP 对象或数组编码为 JSON 字符串。
    // stdClass 或数组
    echo json_encode($data);

    // 确保没有添加任何内容
    exit();
}