php用xml和json處理數據格式。

 

<?php
class Response{
 /**
  * 綜合方式輸出通信數據
  * @param integer $code 狀態嗎
  * @param integer ¥message 提示信息
  * @param array $data數據
  * @param string $type 數據類型
  * return string
  * */
 public static function show ($code,$message='',$data=array(),$type){
  if (is_numeric($code)){
   return '';
  }
  $result =array(
   'code'=>$code,
   'message'=>$message,
    'data'=>$data
  );
  $type =isset($_GET['format']) ?$_GET['format']:self::JSON;
  
  if ($type == 'json'){
   self::json($code,$message,$data);
   exit;
  }elseif ($type == 'array'){
   var_dump($result);
  }elseif ($type == 'xml'){
   self::xmlEncode($code,$message,$data);
   exit;
  }else {
   //TODO
  }
 }
 
 
 
 
 /**
  * 按json方式輸出通信數據
  * @param integer $code 狀態嗎
  * @param integer ¥message 提示信息
  * @param array $data數據
  * return string
  * */
 public static function json($code,$message='',$data=array()){
  if (!is_numeric($code)){
   return '';
  }
  
  $result =array(
   'code'=>$code,
    'message'=>$message,
    'data'=>$data
  );
  echo json_encode($result);
  exit;
  
 }
 /**
  * 按xml方式輸出通信數據
  * @param integer $code 狀態嗎
  * @param integer ¥message 提示信息
  * @param array $data數據
  * return string
  * */
 public static function xmlEncode($code,$message='',$data=array()){
  if (!is_numeric($code)){
   return '';
  }
  $result =array(
   'code'=>$code,
    'message'=>$message,
    'data'=>$data
  );
  header("Content-Type:text/xml");
  $xml = "<?xml version=1.0 encoding ='UTF-8' ?>";
  $xml.="<root>";
  $xml.=self::xmlToEncoding($result);
  
  $xml.="</root>";
 }
 /*
  * xml 的節點值不能爲數字
  *
  * */
 public static function xmlToEncoding ($data){
  $xml="";
  foreach ($data as $key =>$value){
   if (is_numeric($key)){
    $att="id='{$key}'";
    $key ="item";
   }
   $xml.="<{$key}{$att}>";
   //遞歸處理
   $xml.=is_array($value)?self::xmlToEncoding($value):$value;
   $xml.="</{$key}>";
  }
  return $xml;
  
 }
 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章