佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > PHP封裝XML和JSON格式數(shù)據(jù)接口操作示例

PHP封裝XML和JSON格式數(shù)據(jù)接口操作示例

熱門標(biāo)簽:服務(wù)器配置 電子圍欄 Linux服務(wù)器 銀行業(yè)務(wù) 團(tuán)購網(wǎng)站 Mysql連接數(shù)設(shè)置 阿里云 科大訊飛語音識(shí)別系統(tǒng)

本文實(shí)例講述了PHP封裝XML和JSON格式數(shù)據(jù)接口操作。分享給大家供大家參考,具體如下:

使用PHP開發(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ù)的類

?php
//定義生成接口數(shù)據(jù)類
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");
     //開始拼xml數(shù)據(jù)
     $xml = "?xml version='1.0' encoding='UTF-8'?>";
     //根節(jié)點(diǎn)
     $xml .= "root>";
     //創(chuàng)建一個(gè)額外函數(shù)來構(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ù)組是沒有鍵值的話,0>,1>這種類型的節(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;
   }
}
//下面就來測(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)工具,方便大家參考使用:

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

php代碼在線格式化美化工具:
http://tools.jb51.net/code/phpformat

在線XML格式化/壓縮工具:
http://tools.jb51.net/code/xmlformat

json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP中json格式數(shù)據(jù)操作技巧匯總》、《PHP針對(duì)XML文件操作技巧總結(jié)》、《PHP基本語法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP調(diào)用全國天氣預(yù)報(bào)數(shù)據(jù)接口查詢天氣示例
  • php的api數(shù)據(jù)接口書寫實(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語言對(duì)接抖音快手小紅書視頻/圖片去水印API接口源碼
  • PHP預(yù)定義接口——Iterator用法示例
  • php與阿里云短信接口接入操作案例分析
  • PHP開發(fā)API接口簽名生成及驗(yàn)證操作示例
  • PHP接口類(interface)的定義、特點(diǎn)和應(yīng)用示例
  • 微信小程序開發(fā)之獲取用戶手機(jī)號(hào)碼(php接口解密)
  • PHP 對(duì)象接口簡(jiǎn)單實(shí)現(xiàn)方法示例
  • PHP開發(fā)api接口安全驗(yàn)證操作實(shí)例詳解
  • 如何用PHP編寫簡(jiǎn)單的api數(shù)據(jù)接口

標(biāo)簽:蚌埠 廣元 衡水 萍鄉(xiāng) 江蘇 棗莊 大理 衢州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP封裝XML和JSON格式數(shù)據(jù)接口操作示例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    依兰县| 凌云县| 昌都县| 长乐市| 湛江市| 连南| 宣化县| 澎湖县| 句容市| 城口县| 英吉沙县| 昂仁县| 扬中市| 会同县| 门头沟区| 清河县| 宿州市| 新丰县| 和林格尔县| 醴陵市| 茂名市| 师宗县| 湟中县| 郎溪县| 青田县| 剑阁县| 通辽市| 曲水县| 商河县| 肥东县| 吴桥县| 嘉定区| 涿鹿县| 贺兰县| 汉源县| 绥德县| 阜新市| 金溪县| 庄河市| 黎川县| 济源市|