XML
XML(eXtensible Markup Language)是一种可扩展的标记语言。
标记语言(markup Language)是指在普通文本中加入一些具有特定含义的标签(Tag),以对文本的内容进行标识和说明的一种文件标识方法。
一、XML编写规范
XML类似于html的双标签的写法,它必须有根标签,必须是双标签而且必须是封闭,标签名全部都可以自定义。示例代码如下:
<students>
<student id="1">
<name>3D哥</name>
<age>18</age>
<wife>***</wife>
</student>
<student id="1">
<name>3D哥</name>
<age>18</age>
<wife>***</wife>
</student>
<student id="1">
<name>3D哥</name>
<age>18</age>
<wife>***</wife>
</student>
</studnets>
上面就是一段用于表示3个学生的信息的XML代码,我们将数据写成XML的文本代码,通过解析之后将数据传递到前端,实现前后台数据交互。由于传递相同数据时XML占用的空间更大,所以此处我们只做了解,至于如何解析,我们这里便不做描述。
JSON
一、JSON简介
JSON(javaScript Object Notation)是一种轻量型的数据格式。JSON构建有两种结构:
1、“名称/值”对的集合。不同的语言中,它被理解为对象,记录,结构,字典,哈希表,有键列表,或者关联数组,实例:
$json = '{"name" : "xiaoming","age" : "18","gender" : "man"}';
echo $json;

2、值的有序列表。在大部分语言中,它被理解为数组。
二、PHP接收和传递JSON
1、json_decode($json, assoc ) — 对JSON格式的字符串进行编码。
$json : 待解码的json,必须是string格式的字符串。
assoc : 当参数为true返回数组,false返回对象,默认为false。
$json = '{"name" : "xiaoming","age" : "18","gender" : "man"}';
var_dump(json_decode($json)); // 返回对象
echo "<hr/>";
var_dump(json_decode($json,true)); // 返回数组

2、json_encode() — 对变量进行JSON编码
注意: 此函数只能接受UTF-8编码的数据。
返回值: 编码成功则返回一个以json形式表示的string或者在失败时返回false。
$json = array("name"=>"xiaoming", "age"=>"18", "gender"=>"man");
print_r($json);
echo "<hr/>";
// 将数组转换成字符串格式的json对象
echo json_encode($json);

当我们把数据库中的数据取出来之后,经过PHP在后台进行JSON编码之后,通过echo输出在前端用ajax接收数据,即可实现前后台数据交互。
<?php
// 连接数据库
$db = mysql_connect("localhost", "root", "");
// 选择数据库
mysql_select_db("girlDB");
// 设置编码方式
mysql_query("SET NAMES UTF8");
// 查询数据库
$sql = "SELECT * FROM girl";
$res = mysql_query($sql);
// 创建数组
$array = array();
// 取出数据库中的数据
while ($row = mysql_fetch_assoc($res)) {
$array[] = $row; //等同于array_push()
};
// 对数组进行字符串编码
echo json_encode($array);
// 关闭数据库
mysql_close($db);
?>

以上内容纯属个人理解,由于本人水平有限,若有错漏之处敬请指出斧正,小弟不胜感激。
网友评论