协慌网

登录 贡献 社区

从 PHP 脚本返回 JSON

我想从 PHP 脚本返回 JSON。

我只是回应结果吗?我是否必须设置Content-Type标头?

答案

虽然没有它你通常很好,你可以并且应该设置 Content-Type 标题:

<?PHP
$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);

如果我没有使用特定的框架,我通常会允许一些请求参数来修改输出行为。它通常用于快速故障排除,不发送标题,或者有时 print_r 数据有效负载以引人注目(尽管在大多数情况下,它不是必需的)。

返回 JSON 的一整套漂亮而清晰的 PHP 代码是:

$option = $_GET['option'];

if ( $option == 1 ) {
    $data = [ 'a', 'b', 'c' ];
    // will encode to JSON array: ["a","b","c"]
    // accessed as example in JavaScript like: result[1] (returns "b")
} else {
    $data = [ 'name' => 'God', 'age' => -1 ];
    // will encode to JSON object: {"name":"God","age":-1}  
    // accessed as example in JavaScript like: result.name or result['name'] (returns "God")
}

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

尝试使用json_encode对数据进行编码,并使用header('Content-type: application/json');设置内容类型header('Content-type: application/json');