下面是“PHP输出JSON并显示JSON中的中文汉字”的详细攻略:
什么是JSON?
JSON,全称为JavaScript Object Notation,是一种轻量级的数据交换格式。它采用键值对,数据易于读写和解析。在Web应用中传递数据时,JSON已成为事实上的标准,很多互联网公司的API都是以JSON格式输出数据。
为什么需要输出JSON?
在Web应用中,PHP经常需要输出数据给前端,JSON格式则是前后端数据交互的最佳方式。使用PHP输出JSON可以实现前后端数据交互,实现无刷新提交、异步请求等功能。
如何输出JSON?
PHP提供了json_encode函数,可以将PHP数组等数据转换成符合JSON格式的字符串,再输出给前端。示例如下:
<?php
header('Content-type:application/json;charset=utf-8'); //设置content-type为JSON
$data = [
'name' => '张三',
'age' => 18,
'gender' => 'male'
];
echo json_encode($data, JSON_UNESCAPED_UNICODE); //输出JSON数据
?>
这里先设置content-type为JSON,然后定义一个数组$data,通过json_encode函数将数据转换成JSON格式的字符串,最后输出给前端。
如何显示JSON中的中文汉字?
在PHP输出JSON时,如果数组中包含中文汉字,会默认将中文进行\u编码,因此需要在json_encode函数中添加JSON_UNESCAPED_UNICODE参数。
例如:
$data = [
'name' => '张三',
'age' => 18,
'gender' => 'male'
];
echo json_encode($data, JSON_UNESCAPED_UNICODE); //{"name":"张三","age":18,"gender":"male"}
这样输出的JSON字符串中,中文汉字就不会被\u编码了。
示例一:从数据库中获取数据,输出JSON
假设我们有一个数据库的表格,里面有三列:id、username、password。我们要从数据库中获取所有的数据,并以JSON格式输出。
首先,我们需要连接数据库,获取数据。示例代码如下:
<?php
$dbhost = 'localhost'; //数据库地址
$dbuser = 'root'; //数据库用户名
$dbpass = 'root'; //数据库密码
$dbname = 'test'; //数据库名
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); //连接数据库
if (!$conn) {
die('Could not connect: ' . mysqli_error());
}
$sql = "SELECT * FROM users"; //查询所有的用户信息
$result = mysqli_query($conn, $sql);
$data = [];
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row; //将数据添加到$data数组中
}
header('Content-type:application/json;charset=utf-8'); //设置content-type为JSON
echo json_encode($data, JSON_UNESCAPED_UNICODE); //输出JSON数据
mysqli_close($conn); //关闭数据库连接
?>
这样我们就可以从数据库中获取所有用户的信息,并以JSON格式输出。
示例二:提交表单,输出JSON
假设我们有一个提交表单页面,其中包含name和age两个字段,用户输入信息后,提交到server.php页面,server.php页面将表单数据以JSON格式输出。
首先,在表单提交页面,我们需要使用jQuery中的$.ajax函数向server.php发送POST请求。
<!-- submit.html -->
<html>
<head>
<meta charset="utf-8">
<title>表单提交</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>
<body>
<form id="form">
<label>姓名:</label><input type="text" name="name"><br>
<label>年龄:</label><input type="text" name="age"><br>
<button type="button" onclick="submit()">提交</button>
</form>
<script>
function submit() {
$.ajax({
type: 'POST', //设置请求类型为POST
url: 'server.php', //请求地址为server.php
data: $('#form').serialize(), //将表单数据序列化,并作为data参数传递
dataType: 'json', //设置响应数据类型为JSON
success: function (data) { //请求成功后的回调函数
console.log(data); //将返回的JSON数据输出到控制台
}
});
}
</script>
</body>
</html>
接下来,在server.php页面接收POST请求并将表单数据以JSON格式输出。
<?php
header('Content-type:application/json;charset=utf-8'); //设置content-type为JSON
$name = $_POST['name'];
$age = $_POST['age'];
$data = [
'name' => $name,
'age' => $age
];
echo json_encode($data, JSON_UNESCAPED_UNICODE); //输出JSON数据
?>
接收表单数据后,将数据添加到$data数组中,并以JSON格式输出。
这样,我们就可以通过jQuery的$.ajax函数向服务器提交表单,并以JSON格式接收响应数据。
希望这份攻略能够帮助你理解PHP如何输出JSON并显示JSON中的中文汉字。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php 输出json及显示json中的中文汉字详解及实例 - Python技术站