当前网页的前后端数据交互,类型大多是 json
类型的,因此学会如何进行接收和发送数据比较重要。
接收 json
数据
接收无疑就是接受并处理 json
数据,php 也内置了相应的模块,我们只需要进行相应的操作就可以将发送过来 json
数据以键值对数组的格式拿到手。之后再进行相应的数据处理 😃
<?php
$data = file_get_contents('php://input');
$jsonArr= json_decode($data, true);
echo "id: {$jsonArr['id']}</br>";
echo "name: {$jsonArr['name']}";
?>
发送 json
数据
其实发送一个 json
数据很简单,别人访问你的网站,只要你的网站内容是符合 json
数据格式的话,那么就可以将其作为json
数据发送出去,而在 php 中,我们可以这么做 😃
<?php
$arr = array(
"name" => "你好",
"sex" => "boy"
);
echo json_encode($arr , JSON_UNESCAPED_UNICODE);
?>
若上述发送 json
无效时,则说明编码格式非 UTF-8
,由于其json_encode
只识别 UTF-8
编码格式,所以我们要将其转换为UTF-8
😃
<?php
$arr = array(
"name" => "你好",
"sex" => "boy"
);
// 将字符串转换编码格式为 UTF-8 编码格式
function getStringUTF8($str, $mode)
{
if (is_numeric($str)) {
return $str;
}
return iconv($mode, "UTF-8", $str);
}
// 将数组中的所有的值转化为 UTF-8
function transformAll($arr)
{
if (is_array($arr)) {
foreach ($arr as $key => $val) {
$arr[$key] = transformAll($val);
}
} else {
// 开发环境是啥编码格式就写啥编码格式,一般为 GBK
$arr = getStringUTF8($arr, "GBK");
}
return $arr;
}
echo json_encode(transformAll($arr), JSON_UNESCAPED_UNICODE);
?>
这样别人访问你的这个php网址时显示的就是一段json
数据 😃
。。。
问题询问:hellolxb@yeah.net