0%

PHP返回JSON数据

最近在学习PHP,做个小项目牵扯到了PHP返回JS数据的问题
网上的回答在PHP7中仿佛没什么用
记一下好用的方法

网络上的说法好多是设置header然后直接输出数组

1
2
header('Content-Type:application/json; charset=utf-8');
echo $arr;

去查了下PHP手册关于JSON的函数

json_encode — 对变量进行 JSON 编码
返回字符串,包含了 value 值 JSON 形式的表示。

1
json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] ) : string

所以该这样

1
2
header('Content-Type:application/json; charset=utf-8');  // 声明header
echo json_encode($arr); // 打印编码过的数据

返回的中文默认是unicode编码过的,但是可以禁止它

1
echo json_encode($arr,JSON_UNESCAPED_UNICODE);

但是最好声明一下编码

1
header('Content-Type:application/json; charset=utf-8');