DataReturn.class.php
<?php /** 返回數(shù)據(jù)格式化類 * Date: 2011-08-15 * Author: fdipzone */ class DataReturn{ // class start private $type; private $xmlroot; private $callback; private $returnData; public function __construct($param=array()){ $this->type = $this->exists($param,'type')? strtoupper($param['type']) : 'JSON'; // 類型 JSON,XML,CALLBACK,ARRAY $this->xmlroot = $this->exists($param,'xmlroot')? $param['xmlroot'] : 'xmlroot'; // xml root dom name $this->callback = $this->exists($param,'callback')? $param['callback'] : ''; // JS callback function name $format = array(); $format['retcode'] = $this->exists($param,'format.retcode')? $param['format']['retcode'] : 'retcode';//retcode 對應(yīng)名稱 $format['msg'] = $this->exists($param,'format.msg')? $param['format']['msg'] : 'msg'; //msg 對應(yīng)名稱 $format['data'] = $this->exists($param,'format.data')? $param['format']['data'] : 'data'; //data 對應(yīng)名稱 $result = array(); $result[$format['retcode']] = $this->exists($param,'retcode')? $param['retcode'] : 0; $result[$format['msg']] = $this->exists($param,'msg')? $param['msg'] : ''; $result[$format['data']] = $this->exists($param,'data')? $param['data'] : ''; $this->returnData = $result; } //輸出數(shù)據(jù) public function data_return(){ ob_clean(); switch($this->type){ case 'JSON': $this->json_return(); break; case 'XML': $this->xml_return(); break; case 'CALLBACK': $this->callback_return(); break; case 'ARRAY': $this->array_return(); break; default: $this->json_return(); } exit(); } //輸出JSON格式數(shù)據(jù),如有callback參數(shù)則返回JSONP格式 private function json_return(){ header('content-type:text/html;charset=utf-8'); if(empty($this->callback)){ echo json_encode($this->returnData); }else{ echo $this->callback.'('.json_encode($this->returnData).');'; } } //輸出XML格式數(shù)據(jù) private function xml_return(){ header('content-type:text/xml;charset=utf-8'); echo $this->xml_encode($this->returnData,$this->xmlroot); } //輸出JSON格式數(shù)據(jù),并調(diào)用callback方法 private function callback_return(){ header('content-type:text/html;charset=utf-8'); $this->callback = empty($this->callback)? 'callback' : $this->callback; echo "<script type=\"text/javascript\">\r\n"; echo $this->callback."(".json_encode($this->returnData).");\r\n"; echo "</script>"; } //輸出數(shù)組格式數(shù)據(jù) private function array_return(){ header('content-type:text/html;charset=utf-8'); echo '<pre class="brush:php;toolbar:false">'; print_r($this->returnData); echo '
demo
<? require_once('DataReturn.class.php'); $param = array( // DataReturn 參數(shù) 'type' => 'JSON', // 輸出的類型 JSON,XML,CALLBACK,ARRAY 默認為 JSON 'retcode' => '1000', // retcode 的值,默認為0 'msg' => '', // msg 的值,默認為空 'data' => array( // 要輸出的數(shù)據(jù) 'id' => '100', 'name' => 'fdipzone', 'gender' => 1, 'age' => 28 ), 'format' => array(// 輸出的數(shù)據(jù)key格式,默認為 retcode,msg,data 'retcode' => 'status', 'msg' => 'info', 'data' => 'result' ), 'xmlroot' => 'xmlroot', // 當(dāng)type=XML時,XML根節(jié)點名稱,默認為xmlroot 'callback' => 'callback' /* 回調(diào)方法名稱 type=JSON時,默認為空,如不為空,則輸出callback({data}); type=CALLBACK時,默認為callback,自動調(diào)用頁面JS回調(diào)方法 */ ); $obj = new DataReturn($param); // 創(chuàng)建DataReturn類對象 $obj->data_return(); // 按格式輸出數(shù)據(jù) ?>
本文講解了php返回數(shù)據(jù)格式化類,更多相關(guān)內(nèi)容請關(guān)注php中文網(wǎng)。
相關(guān)推薦:
php CSS Update Class的相關(guān)內(nèi)容講解
關(guān)于php __call 與 __callStatic 的內(nèi)容講解
立即學(xué)習(xí)“PHP免費學(xué)習(xí)筆記(深入)”;
以上就是關(guān)于php返回數(shù)據(jù)格式化類的詳解的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
PHP怎么學(xué)習(xí)?PHP怎么入門?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號