本文實(shí)例講述了PHP封裝XML和JSON格式數(shù)據(jù)接口操作。分享給大家供大家參考,具體如下:
使用PHP開(kāi)發(fā)app后端的接口時(shí),我們需要返回?cái)?shù)據(jù),最常用的就是XML和JSON格式的數(shù)據(jù),那么樣返回呢?
1.JSON
json數(shù)據(jù)是最容制造的,只要使用php自帶的json_encode()
函數(shù)就可以簡(jiǎn)單的制作出json數(shù)據(jù)了
2.XML
xml數(shù)據(jù)就要復(fù)雜一點(diǎn)了,讓我們看一下xml數(shù)據(jù)的格式
那么怎樣構(gòu)造呢?
3.制作生產(chǎn)接口數(shù)據(jù)的類(lèi)
?php
//定義生成接口數(shù)據(jù)類(lèi)
class Api
{
/*
* 生成json數(shù)據(jù)格式
* @param integer $code 狀態(tài)碼
* @param string $message 提示信息
* $param array $data 數(shù)據(jù)
* return string
*/
public static function json($code, $message = '', $data = array())
{
//如果狀態(tài)碼不是數(shù)字就返回空
if(!is_numeric($code)) {
return '';
}
//構(gòu)造返回?cái)?shù)據(jù)
$result = array(
'code' = > $code,
'message' => $message,
'data' => $data
);
return json_encode($result);
}
/*
* 生成xml數(shù)據(jù)格式
* @param integer $code 狀態(tài)碼
* @param string $message 提示信息
* @param array $data 數(shù)據(jù)
* return string
*/
public static function xml($code, $message = '', $data = array())
{
if(!is_numeric($code)) {
return '';
}
$result = array(
'code' => $code,
'message' => $message,
'data' => $data
);
//構(gòu)造xml數(shù)據(jù)
//使返回的數(shù)據(jù)以xml格式顯示
header("Content-Type:text/xml");
//開(kāi)始拼xml數(shù)據(jù)
$xml = "?xml version='1.0' encoding='UTF-8'?>";
//根節(jié)點(diǎn)
$xml .= "root>";
//創(chuàng)建一個(gè)額外函數(shù)來(lái)構(gòu)造
$xml .= self::xmlToEncode($result);
$xml .= "/root>";
return $xml;
}
//構(gòu)造xml數(shù)據(jù)函數(shù)
public static function xmlToEncode($data)
{
$xml = "";
$attr = "";
foreach($data as $key => $value)
{
//如果傳遞的數(shù)組是沒(méi)有鍵值的話(huà),0>,1>這種類(lèi)型的節(jié)點(diǎn)是不合法的,所有就要判斷了,如果是數(shù)字就這樣item id='0'>顯示
if(is_numeric($key)) {
$attr = "id = '{$key}'";
$key = "item";
}
//如果是數(shù)字就加上$attr
$xml .= "{$key}{$attr}>";
//如果value是數(shù)組就進(jìn)行遞歸
$xml .= is_array($value) ? self::xmlToEncode($value) : $value;
$xml .= "/{$key}>";
}
return $xml;
}
}
//下面就來(lái)測(cè)試一下吧
$data = array(
'id' => 1,
'name' => 'zjp',
'content' => array(
'sex' => '男',
'age' => '24',
'num' => array(1,3,5,7,9)
)
);
$xml = Api::xml(200, "返回?cái)?shù)據(jù)成功", $data);
$json = Api::json(200, "返回?cái)?shù)據(jù)成功", $data);
?>
xml格式數(shù)據(jù):上面那張介紹xml格式
json格式數(shù)據(jù):
PS:本站還提供了如下XML與JSON相關(guān)工具,方便大家參考使用:
在線(xiàn)XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
php代碼在線(xiàn)格式化美化工具:
http://tools.jb51.net/code/phpformat
在線(xiàn)XML格式化/壓縮工具:
http://tools.jb51.net/code/xmlformat
json代碼在線(xiàn)格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP中json格式數(shù)據(jù)操作技巧匯總》、《PHP針對(duì)XML文件操作技巧總結(jié)》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP調(diào)用全國(guó)天氣預(yù)報(bào)數(shù)據(jù)接口查詢(xún)天氣示例
- php的api數(shù)據(jù)接口書(shū)寫(xiě)實(shí)例(推薦)
- PHP實(shí)現(xiàn)chrome表單請(qǐng)求數(shù)據(jù)轉(zhuǎn)換為接口使用的json數(shù)據(jù)
- PHP實(shí)現(xiàn)騰訊短網(wǎng)址生成api接口實(shí)例
- PHP接入支付寶接口失效流程詳解
- PHP語(yǔ)言對(duì)接抖音快手小紅書(shū)視頻/圖片去水印API接口源碼
- PHP預(yù)定義接口——Iterator用法示例
- php與阿里云短信接口接入操作案例分析
- PHP開(kāi)發(fā)API接口簽名生成及驗(yàn)證操作示例
- PHP接口類(lèi)(interface)的定義、特點(diǎn)和應(yīng)用示例
- 微信小程序開(kāi)發(fā)之獲取用戶(hù)手機(jī)號(hào)碼(php接口解密)
- PHP 對(duì)象接口簡(jiǎn)單實(shí)現(xiàn)方法示例
- PHP開(kāi)發(fā)api接口安全驗(yàn)證操作實(shí)例詳解
- 如何用PHP編寫(xiě)簡(jiǎn)單的api數(shù)據(jù)接口