php返回数据格式化类

博主分享其老师的人工智能教程,该教程零基础、通俗易懂、风趣幽默,还给出教程链接https://blog.csdn.net/jiangjunshow ,希望更多人加入人工智能队伍。

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

                DataReturn.class.php
<?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 "<script type=\"text/javascript\">\r\n";  echo $this->callback."(".json_encode($this->returnData).");\r\n";  echo "</script>"; } //輸出數組格式數據 private function array_return(){  header('content-type:text/html;charset=utf-8');  echo '<pre>';  print_r($this->returnData);  echo '</pre>'; } //XML編碼 private function xml_encode($data, $root='xmlroot', $encoding='utf-8') {  $xml = "<?xml version=\"1.0\" encoding=\"" . $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.="</$key>\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);  } } //判斷是否需要加上<![CDATA[]]>標記 private function cdata($val){  if(!empty($val) && !preg_match('/^[A-Za-z0-9+$]/',$val)){   $val = '<![CDATA['.$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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值