PHP 가 요청 한 데 이 터 를 json 또는 xml 형식 으로 되 돌려 주 는 방법

웹 페이지 든 모 바 일 엔 드 든 서버 에 데 이 터 를 요청 해 야 합 니 다.그러면 phop 서버 로 서 표준 데 이 터 를 어떻게 되 돌려 줍 니까?
현재 주류 데이터 형식 은 json 과 xml 일 뿐 입 니 다.이 두 가지 형식 데 이 터 를 되 돌려 주 는 종 류 를 phop 으로 어떻게 포장 하 는 지 살 펴 보 겠 습 니 다.
응답 클래스 를 정의 합 니 다.

class response{
}
1.제 이 슨 형식 으로 데 이 터 를 되 돌려 줍 니 다.
json 형식 으로 데 이 터 를 되 돌려 주 는 것 은 비교적 간단 합 니 다.우리 배경 에서 얻 은 데 이 터 를 표준 json 형식 으로 요청 단 에 되 돌려 주면 됩 니 다.

// json      
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);
}
2.xml 형식 으로 데 이 터 를 되 돌려 줍 니 다.
이 방식 은 data 에 있 는 데 이 터 를 옮 겨 다 녀 야 합 니 다.데이터 에 배열 이 있 으 면 다시 옮 겨 다 녀 야 합 니 다.또 하나의 특수 한 상황 이 있 습 니 다.배열 의 아래 가 숫자 로 표시 되 었 을 때 xml 형식 이 잘못 되 었 습 니 다.xml 의 디지털 라벨 을 교체 해 야 합 니 다.

// xml      
 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::xmlToEncode($result);
  $xml.="</root>";
  echo $xml;
 }
 public static function xmlToEncode($data){
  $xml=$attr='';
  foreach($data as $key=>$value){
   if(is_numeric($key)){
    $attr="id='{$key}'";
    $key="item";
   }
   $xml.="<{$key} {$attr}>";
   $xml.=is_array($value)?self::xmlToEncode($value):$value;
   $xml.="</{$key}>";
  }
  return $xml;
 }
}
3.두 가지 형식 을 하나의 방법 으로 포장 하고 전체 코드 는 다음 과 같다.

class response{
 public static function show($code,$message,$data=array(),$type='json'){
  /**
  *           
  *@param integer $code    
  *@param string $message     
  *@param array $data   
  *@param string $type     
  *return string
  */
  if(!is_numeric($code)){
   return '';
  }
  $result=array(
   "code"=>$code,
   "message"=>$message,
   "data"=>$data
  );
  if($type=='json'){
   self::json($code,$message,$data);
   exit;
  }elseif($type=='xml'){
   self::xmlEncode($code,$message,$data);
   exit;
  }else{
   //           
  }
 }
 // json      
 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);
 }
 // xml      
 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::xmlToEncode($result);
  $xml.="</root>";
  echo $xml;
 }
 public static function xmlToEncode($data){
  $xml=$attr='';
  foreach($data as $key=>$value){
   if(is_numeric($key)){
    $attr="id='{$key}'";
    $key="item";
   }
   $xml.="<{$key} {$attr}>";
   $xml.=is_array($value)?self::xmlToEncode($value):$value;
   $xml.="</{$key}>";
  }
  return $xml;
 }
}
$data=array(1,231,123465,array(9,8,'pan'));
response::show(200,'success',$data,'json');
이렇게 해서 우리 가 show 방법 을 호출 할 때 네 개의 파 라 메 터 를 전달 해 야 합 니 다.네 번 째 파 라 메 터 는 되 돌아 가 려 는 데이터 형식 이 고 기본 값 은 json 형식 입 니 다.효 과 는 다음 과 같 습 니 다.

xml 형식 으로 데 이 터 를 되 돌려 주 는 show 방법 을 다시 호출 합 니 다.

response::show(200,'success',$data,'xml');
효 과 는 다음 과 같 습 니 다:

이렇게 하면 우 리 는 이 두 가지 데이터 형식 에 대한 패 키 징 을 완성 하여 이 두 가지 형식의 데 이 터 를 마음대로 되 돌 릴 수 있다.
이상 의 PHP 가 json 또는 xml 형식 으로 요청 데 이 터 를 되 돌려 주 는 방법 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 하 실 수 있 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기