php返回数据格式化类

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

                DataReturn.class.php
/** 返回數據格式化類* 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 對應名稱  $format['msg'] = $this->exists($param,'format.msg')? $param['format']['msg'] : 'msg';                //msg 對應名稱  $format['data'] = $this->exists($param,'format.data')? $param['format']['data'] : 'data';            //data 對應名稱  $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; } //輸出數據 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格式數據,如有callback參數則返回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格式數據 private function xml_return(){  header('content-type:text/xml;charset=utf-8');  echo $this->xml_encode($this->returnData,$this->xmlroot); } //輸出JSON格式數據,并調用callback方法 private function callback_return(){  header('content-type:text/html;charset=utf-8');  $this->callback = empty($this->callback)? 'callback' : $this->callback;  echo ""; } //輸出數組格式數據 private function array_return(){  header('content-type:text/html;charset=utf-8');  echo '
';  print_r($this->returnData);  echo '
'
; } //XML編碼 private function xml_encode($data, $root='xmlroot', $encoding='utf-8') {  $xml = " . $encoding . "\"?>\n";  $xml.= "<" . $root . ">\n";  $xml.= $this->data_to_xml($data);  $xml.= " . $root . ">";  return $xml; } //數組轉XML格式 private function data_to_xml($data) {  if (is_object($data)) {   $data = get_object_vars($data);  }  $xml = '';  foreach ($data as $key => $val) {   is_numeric($key) && $key = "item id=\"$key\"";   $xml.="<$key>";   $xml.= ( is_array($val) || is_object($val)) ? $this->data_to_xml($val) : $this->cdata($val);   list($key, ) = explode(' ', $key);   $xml.="\n";  }  return $xml; } //判斷數據是否存在 private function exists($obj,$key=''){  if($key==''){   return isset($obj) && !empty($obj);  }else{   $keys = explode('.',$key);   for($i=0,$max=count($keys); $i<$max; $i++){    if(isset($obj[$keys[$i]])){     $obj = $obj[$keys[$i]];    }else{     return false;    }   }   return isset($obj) && !empty($obj);  } } //判斷是否需要加上標記 private function cdata($val){  if(!empty($val) && !preg_match('/^[A-Za-z0-9+$]/',$val)){   $val = '.$val.']]>';  }  return $val; }} // class end?>
demo
    require_once('DataReturn.class.php');    $param = array( // DataReturn 參數                    'type'    => 'JSON', // 輸出的類型 JSON,XML,CALLBACK,ARRAY 默認為 JSON                    'retcode' => '1000', // retcode 的值,默認為0                    'msg'     => '',     // msg 的值,默認為空                    'data'    => array// 要輸出的數據                                    'id'     => '100',                                    'name'   => 'fdipzone',                                    'gender' => 1,                                    'age'    => 28                                 ),                    'format'  => array// 輸出的數據key格式,默認為 retcode,msg,data                                    'retcode' => 'status',                                    'msg'     => 'info',                                    'data'    => 'result'                                 ),                    'xmlroot'  => 'xmlroot'// 當type=XML時,XML根節點名稱,默認為xmlroot                    'callback' => 'callback'  /* 回調方法名稱                                                   type=JSON時,默認為空,如不為空,則輸出callback({data});                                                   type=CALLBACK時,默認為callback,自動調用頁面JS回調方法                                              */    );    $obj = new DataReturn($param);  // 創建DataReturn類對象    $obj->data_return();            // 按格式輸出數據?>
           

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

你可能感兴趣的:(php返回数据格式化类)