PHP 가 요청 한 데 이 터 를 json 또는 xml 형식 으로 되 돌려 주 는 방법
현재 주류 데이터 형식 은 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 형식 으로 요청 데 이 터 를 되 돌려 주 는 방법 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 하 실 수 있 고 많은 응원 부 탁 드 리 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콘텐츠 SaaS | JSON 스키마 양식 빌더Bloomreach Content를 위한 JSON Form Builder 맞춤형 통합을 개발합니다. 최근 Bloomreach Content SaaS는 내장 앱 프레임워크를 사용하여 혁신적인 콘텐츠 유형 필드를 구축할...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.