php-app介面實現(json和xml)

來源:互聯網
上載者:User
1.回顧

上篇學習了封裝mysql的執行個體化對象類!

2.這篇將封裝一個app介面類,用來產生 json資料和xml資料

3.瞭解和掌握

3.1 xml和json的區別

xml:擴充標記語言:可以標記資料 ,定義資料類型;資料格式清晰明了, 可讀性高;
json:一種輕量級的資料交換格式;產生資料簡單;傳輸速度快;

3.2 app介面與資料

擷取資料:從資料庫中或者緩衝中擷取資料(可以是緩衝裡的資料)
提交資料:通過get方式或者post方式提交資料,服務端處理後,返回資料

3.3 通訊資料標準格式

狀態代碼:code
提示資訊:message
返回資料: data

3.4 定時任務和緩衝 (這裡不封裝)

緩衝 :靜態緩衝 , Memcache 和 Redis 緩衝技術
定時任務 :corntab

4.封裝

4.1 json封裝

json方式封裝介面資料方法
函數json_encode();
只接收utf-8的編碼資料

4.2 xml封裝

組裝字串 (簡單)
使用系統的方法

4.3 實作類別

$code,'msg'=>$msg,'data'=>$data);if($type=='json'){self::jsonEncode($code,$msg,$data);exit();}elseif ($type=='xml'){self::xmlEncode($code,$msg,$data);exit();}elseif ($type='array'){var_dump($result);exit();}}/** * 02.按json方式輸出 通訊資料 * @param int $code 狀態代碼 * @param string $msg 提示資訊 * @param array $data 資料 * retrun string  */public static function jsonEncode($code,$msg='',$data=array()) {header("Content-Type:text/json");#判斷狀態代碼if(!is_numeric($code)){return '';}$result=array('code'=>$code,        'msg'=>$msg,'data'=>$data);echo json_encode($result);exit();}    /**     * 03.封裝xml 輸出通訊資料     * @param unknown $code     * @param unknown $msg     * @param unknown $data     */public static function xmlEncode($code,$msg='',$data=array()){if(!is_numeric($code)){           return '';}$result=array('code'=>$code,'msg'=>$msg,'data'=>$data);header("Content-Type:text/xml");$xml="";$xml.="";$xml.=self::xmlToEncode($result);$xml.="";echo $xml;exit();}/** *04. 拼裝 xml資料 * @param array $data * @return string * 使用遞迴,判斷是不是數組,是數組繼續調用迴圈 * xml的 節點不能為 數字,用item代替 */public  static function xmlToEncode($data){$xml=$attr='';foreach ($data as $key=>$value){if(is_numeric($key)){$attr="id='{$key}'";$key="item";}$xml.="<{$key} {$attr}>";$xml.=is_array($value)?self::xmlToEncode($value):$value;$xml.="";}return $xml;}}?>

4.4 調用

通過url實現 ,顯示資料類型 type可以為 xml ,json ,array !

http://localhost:8081/appInterface/test.php?type=json

test.php 實現如下:

require_once 'appUtil.php';
$arr=array('id'=>1,'name'=>'yuan','age'=>23,'location'=>'hpu');$arr1=array(1,4,5,2,6,3);Response::jsonEncode(200,'success',$arr);

5.綜合 上篇串連mysql資料庫 實現:資料封裝

//調用$con=Db::getInstance()->connect();//查詢語句$sql='select * from user_info';//執行,返回結果集$result=mysql_query($sql,$con);//添加的新數組$arr3=array();while ($row=mysql_fetch_row($result)){array_push($arr3,$row);}Response::show('200','success',$arr3);

6. appUtil.php下載

http://download.csdn.net/detail/lablenet/8995987

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

以上就介紹了php-app介面實現(json和xml),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.