📜  从 PHP 脚本返回 JSON - PHP (1)

📅  最后修改于: 2023-12-03 15:06:32.084000             🧑  作者: Mango

从 PHP 脚本返回 JSON

在 Web 开发中,JSON 已成为一种流行的数据格式,用于在客户端和服务器之间传输数据。在 PHP 中,将数据转换为 JSON 格式并返回给客户端非常简单。

使用 JSON_ENCODE 函数

PHP 内置的 json_encode() 函数可以将 PHP 数组转化为 JSON 格式。下面是一个将数组转换为 JSON 格式并输出的示例:

$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);

header('Content-Type: application/json');
echo json_encode($data);

上述示例中,我们首先定义了一个 PHP 数组 $data,然后使用 json_encode() 函数将其转换为 JSON 格式。这里需要注意的一点是,我们在输出前先设置了响应头的 Content-Typeapplication/json,这是告诉浏览器返回的内容是 JSON 格式的。最后,使用 echo 输出 JSON 格式的数据。

返回 HTTP 响应码

在实际应用中,我们可能需要根据请求的成功与否返回不同的 HTTP 响应码。例如,当返回的数据有效时,返回 200 状态码;当出现错误时,返回 400 或者 500 状态码。

使用 PHP 内置的 http_response_code() 函数可以实现这一点:

$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);

if (empty($data)) {
    http_response_code(400);
    echo json_encode(array('error' => 'Bad Request'));
} else {
    http_response_code(200);
    header('Content-Type: application/json');
    echo json_encode($data);
}

上述示例中,我们检查了 $data 变量是否为空,如果为空则返回 400 错误码和错误信息;如果非空,则返回状态码 200 和 JSON 格式的数据。需要注意的是,在返回数据前,我们也设置了响应头的 Content-Typeapplication/json

封装为函数

在实际开发中,我们可能需要多次使用到将数据转换为 JSON 格式并返回的功能。为了复用代码,我们可以将其封装为一个函数:

function return_json($data) {
    header('Content-Type: application/json');
    echo json_encode($data);
}

使用该函数,将数据转换为 JSON 并返回非常简单,例如:

$data = array(
    'name' => 'John',
    'age' => 30,
    'city' => 'New York'
);

return_json($data);

上述示例中,我们定义了一个 return_json() 函数,它接受一个 PHP 数组作为参数,并将其转换为 JSON 格式并输出。使用该函数,我们只需要传递数组即可完成 JSON 格式返回。