php實現的返回資料格式化類執行個體,php執行個體_PHP教程

來源:互聯網
上載者:User

php實現的返回資料格式化類執行個體,php執行個體


本文執行個體講述了php實現的返回資料格式化類及其用法,在字串處理中非常具有實用價值。分享給大家供大家參考。具體方法如下:

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 "";   }    //輸出數組格式資料   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 = "<?xml version=\"1.0\" encoding=\"" . $encoding . "\"?>\n"; $xml.= "<" . $root . ">\n"; $xml.= $this->data_to_xml($data); $xml.= ""; 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樣本程式如下:

<?php   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();      // 按格式輸出資料 ?>

希望本文所述對大家php程式設計的學習有所協助。


php中對資料庫返回的日期時間的資料的格式化

你在資料庫裡存時間戳記,然後用date方法來格式化時間來處理
 

php數值格式化輸出問題

程式碼:
\n";echo fmt_num(123456789 )."
\n"; function fmt_num($n){ $s=($n % 1000).'銅';$n=floor($n/1000); $s=($n % 1000).'銀'.$s;$n=floor($n/1000); $s=($n % 100).'金'.$s;$n=floor($n/100); $s=($n % 100).'鑽'.$s;$n=floor($n/100); return $s; }?>
運行樣本:
E:\TEMP\檔案\exp>a.php
25鑽33金120銀-296銅

1鑽23金456銀789銅


代碼能看懂吧,我定義了一個函數,你可以根據需要修改函數的返回格式。

 

http://www.bkjia.com/PHPjc/882904.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/882904.htmlTechArticlephp實現的返回資料格式化類執行個體,php執行個體 本文執行個體講述了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.