在做數據接口時,我們通常要獲取第三方數據接口或者給第三方提供數據接口,而這些數據格式通常是以XML或者JSON格式傳輸,本文將介紹如何使用PHP生成XML格式數據供第三方調用以及如何獲取第三方提供的XML數據。
生成XML格式數據
我們假設系統中有一張學生信息表student,需要提供給第三方調用,並有id,name,sex,age分別記錄學生的姓名、性別、年齡等信息。
- CREATE TABLE `student` (
- `id` int(11) NOT NULL auto_increment,
- `name` varchar(50) NOT NULL,
- `sex` varchar(10) NOT NULL,
- `age` smallint(3) NOT NULL default '0',
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
首先,建立createXML.php文件,先連接數據庫,獲取數據。
- include_once ("connect.php"); //連接數據庫
- $sql = "select * from student";
- $result = mysql_query($sql) or die("Invalid query: " . mysql_error());
- while ($row = mysql_fetch_array($result)) {
- $arr[] = array(
- 'name' => $row['name'],
- 'sex' => $row['sex'],
- 'age' => $row['age']
- );
- }
這個時候,數據就保存在$arr中,你可以使用print_r打印下數據測試。
接著,建立xml,循環數組,將數據寫入到xml對應的節點中。
- $doc = new DOMDocument('1.0', 'utf-8'); // 聲明版本和編碼
- $doc->formatOutput = true;
- $r = $doc->createElement("root");
- $doc->appendChild($r);
- foreach ($arr as $dat) {
- $b = $doc->createElement("data");
- $name = $doc->createElement("name");
- $name->appendChild($doc->createTextNode($dat['name']));
- $b->appendChild($name);
- $sex = $doc->createElement("sex");
- $sex->appendChild($doc->createTextNode($dat['sex']));
- $b->appendChild($sex);
- $age = $doc->createElement("age");
- $age->appendChild($doc->createTextNode($dat['age']));
- $b->appendChild($age);
- $r->appendChild($b);
- }
- echo $doc->saveXML();
我們調用了PHP內置的類DOMDocument來處理與生成xml。最終生成的xml格式請