PHP 상용 조작 클래스 의 통신 데이터 패 키 징 클래스 구현
6249 단어 php상용 조작 류통신 데이터 패 키 징 클래스
본 고 는 주로 PHP 상용 조작 류 의 통신 데이터 패 키 징 류 실현 에 관 한 내용 을 소개 하고 참고 학습 을 제공 합 니 다.다음은 더 이상 말 하지 않 고 상세 한 소 개 를 살 펴 보 겠 습 니 다.
필요 성
B/S 구조 에서 든 C/S 구조 에서 든 양쪽 의 데이터 통신(주:이곳 의 통신 은 네트워크 요청 과 답장 작업 을 말 합 니 다)은 피 할 수 없습니다.데이터 가 없 으 면 내용 이 없고 내용 이 없 으 며 무슨 의미 가 있 습 니까?)
일반적으로 C/S 구조 통신 집행 절 차 는 다음 과 같다.
B/S 구조 통신 집행 절 차 는 다음 과 같다.
선택 하 다.
데이터 통신 이 불가피 한 만큼 어떤 통신 방식 을 선택해 야 할 까?현재 서버 와 클 라 이언 트 가 데이터 전송 과 상호작용 을 하 는 방식 은 주로 URL,XML,JSON 세 가지 방식 이 있다.
URL 방식 은 가장 자주 사용 되 고 가장 직접적 이 며 보통 GET 방법 에 사 용 됩 니 다.사실은 POST 중의 Form 폼 은 실질 적 으로 URL 방식 이 라 고 생각 합 니 다.그러나 이런 전송 방식 은 데이터 가 유한 하고 규범화 되 지 않 으 며 간단 한 장면 에 만 적합 합 니 다.XML 과 JSON 은 실질 적 으로 데이터 에 대한 묘사 이다.복잡 한 데이터 에 대해 분할,포장,규범화 등 일련의 처 리 를 하고 데이터 전송 과 해석 을 편리 하 게 하 는 것 이 목적 이다.상대 적 으로 JSON 은 XML 보다 가 볍 지만 더욱 유연 하고 강하 다.예 를 들 어 상기 두 가지 방식 으로 나의 개인 정 보 를 다음 과 같이 나타 낸다.
JSON:
{"name":"entner","age":21,"gender":" "}
XML:
<ROOT>
<name>entner</name>
<age>21</age>
<gender> </gender>
</ROOT>
관심 있 는 독 자 는 뒤의 참고 링크 를 참고 하여 매우 상세 하 게 쓸 수 있다.어떻게 포장 합 니까?
위 에서 말 했 듯 이 XML 과 JSON 은 현재 주류 의 통신 데이터 형식 으로 어떻게 포장 하고 활용 하 는 지 에 대해 이야기 하 겠 습 니 다.
만약 에 우리 가 배경 에서 데이터베이스 서버 를 조작 하여 배열 데 이 터 를 얻 으 면 배열 이 JSon 으로 전환 하 는 데 json 만 필요 합 니 다.encode 함수 면 충분 합 니 다.자동 으로 재 귀적 으로 검 측 됩 니 다.배열 이 XML 로 전환 하 는 데 있어 서 는 엄격하게 형식 에 따라 코드 와 주석 을 구체 적 으로 봐 야 합 니 다.
Source Code
<?php
/**
* TODO:Json
* Author:entner
* time: 2017-5-8
* version:1.0
* ready:
:int $code
:string $message
:array $data
:array $result
function:
show
jsonEncode Json
xmlToJson xml
xmlEncode xmlToJson
*/
Class Json{
const JSON = "json";
/**
*
*@param inter code
*@param char message
*@param array data
*@param string type
*return string
*/
public function show($code,$message,$data=array(),$type = self::JSON){
/* */
if(!is_numeric($code)){
exit();
}
$result = array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
/* , Json */
$type = isset($_GET['format'])? $_GET['format']:self::JSON;
if($type == 'xml'){
$this->xmlEnCode($code,$message,$data);
exit; // ,
}else if($type == 'json'){
$this->jsonEncode($code,$message,$data);
exit ;
}else if($type == 'array'){
var_dump($result);
exit;
}else{
// http/ftp/
}
}
/**
* Json
*@param inter code
*@param char message
*@param array data
*return string
*/
public function jsonEnCode($code,$message,$data=array()){
if(!is_numeric($code)){
exit();
}
$result = array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
echo json_encode($result); //json_encode
return true;
}
/**
* XML
*@param inter code
*@param char message
*@param array data
*return string
*/
public function xmlEnCode($code,$message,$data=array()){
if(!is_numeric($code)){
exit();
}
$result = array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
/* xml */
/* XML */
header("Content-type:text/xml");
$xml = "<?xml version = '1.0' encoding = 'UTF-8'?>
";
$xml .= "<root>
"; /* XML , . */
$xml .= self::xmlToJson($result); /* xmlToJson */
$xml .= "</root>";
echo $xml;
}
/**
* XML
*@param inter code
*@param char message
*@param array data
*return string
*/
public static function xmlToJson($data){
$xml = $attr = "";
foreach($data as $k => $v){
/*XML , , , */
if(is_numeric($k)){
$attr = " id = '{$k}' ";
$k = "item";
$xml .="<{$k}{$attr}>
";
/* , , , , $xml , */
$xml .=is_array($v)?self::xmlToJson($v):$v;
$xml .="</{$k}>
";
}else{
$xml .="<{$k}>
";
$xml .=is_array($v)?self::xmlToJson($v):$v;
$xml .="</{$k}>
";
}
}
return $xml;
}
}
$data = array(
'name'=>'entner',
'type'=>array(
0=>'a',
1=>'b'
)
);
$try = new Json();
$try->xmlEnCode(200,'success',$data);
총결산이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
참조 링크
1、 PHP 와 모 바 일 앱 개발 즉 API 인터페이스 개발
2、 C/S B/S 및 WEB 작업 원리
3、 비교 분석 json 및 XML
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.