国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home Backend Development PHP Tutorial Implementation code sharing of PHP communication data encapsulation class

Implementation code sharing of PHP communication data encapsulation class

Feb 07, 2018 am 09:40 AM
php code accomplish

PHP class encapsulation is relatively difficult for beginners to understand. This article mainly introduces relevant information about the implementation of communication data encapsulation classes of PHP common operation classes. The article introduces it in detail through example code, which is very useful for everyone. It has certain reference and learning value, and I hope it can help everyone.

Necessity

Whether it is in the B/S architecture or the C/S architecture, the data communication at both ends (note: the communication here refers to the network request and reply operations ) are inevitable, because without data, there is no content, and without content, what’s the point:)

Generally speaking, the C/S architecture communication execution process is as follows:

The B/S architecture communication execution process is like this:

Choose

Since data communication is inevitable , then which communication method should be better? At present, there are three main ways of data transmission and interaction between the server and the client: URL, XML, and JSON.

The URL method is the most commonly used and direct. It is usually used for the GET method. In fact, I think the Form form in POST is actually the URL method. However, this transmission method has limited data and is not standardized. It is only suitable for Some simple scenes. XML and JSON are essentially descriptions of data. The purpose is to segment, package, standardize and other processing of complex data to facilitate data transmission and analysis. Relatively speaking, JSON is lighter but more flexible and powerful than XML. For example Example: Use the above two methods to express my personal information as follows:

?JSON:
?{"name":"entner","age":21,"gender":"男"}
?
?XML:
?<ROOT>
??<name>entner</name>
??<age>21</age>
??<gender>男</gender>
?</ROOT>

Interested readers can refer to the reference link below, which is very detailed.

How to encapsulate?

As mentioned above, XML and JSON are currently the mainstream communication data formats. Let’s talk about how to encapsulate them for easy use.

Assume that we operate the database server in the background to obtain array data. To convert the array to Json, we only need the json_encode function. It will automatically detect recursion. For the array to XML, we need to strictly follow the format. See the code for details. and comments.

Source Code

<?php
/**
 * TODO:Json格式數(shù)據(jù)通信
 * Author:entner
 * time: 2017-5-8
 * version:1.0
 * ready:
  狀態(tài)碼 :int $code
  提示消息:string $message
  消息內(nèi)容:array $data
  數(shù)組包裝:array $result
  

 function: 
  show   封裝多種通信數(shù)據(jù)格式
  jsonEncode 封裝Json格式通信數(shù)據(jù)
  xmlToJson 封裝xml格式通信數(shù)據(jù)
  xmlEncode  遞歸調(diào)用xmlToJson

 */
Class Json{

 const JSON = "json";

/**
  *按綜合方式輸出通信數(shù)據(jù)
  *@param inter code 狀態(tài)碼
  *@param char message 消息提示
  *@param array data 通信數(shù)據(jù)
  *@param string type 數(shù)據(jù)類型
  *return string
 */ 

 public function show($code,$message,$data=array(),$type = self::JSON){
  /* 檢查狀態(tài)碼是否合法 */
  if(!is_numeric($code)){
   exit();
  }

  $result = array(
   &#39;code&#39;=>$code,
???'message'=>$message,
???'data'=>$data
???);

??/*?由客戶端傳遞參數(shù)決定封裝數(shù)據(jù)的格式,默認(rèn)Json格式?*/
??$type?=?isset($_GET['format'])??$_GET['format']:self::JSON;

??if($type?==?'xml'){
???$this->xmlEnCode($code,$message,$data);
???exit;?//一次不允許并發(fā)多種格式,所以沒必要執(zhí)行下面的判斷
??}else?if($type?==?'json'){
???$this->jsonEncode($code,$message,$data);
???exit?;
??}else?if($type?==?'array'){
???var_dump($result);
???exit;
??}else{
???//?客戶端傳來的數(shù)據(jù)格式為?http/ftp/
??}

?}


/**
??*輸出Json格式通信數(shù)據(jù)
??*@param?inter?code?狀態(tài)碼
??*@param?char?message?消息提示
??*@param?array?data?通信數(shù)據(jù)
??*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會自動遞歸轉(zhuǎn)換數(shù)組變量
??return?true;
?}

?/**
??*輸出XML格式通信數(shù)據(jù)
??*@param?inter?code?狀態(tài)碼
??*@param?char?message?消息提示
??*@param?array?data?通信數(shù)據(jù)
??*return?string
?*/?
?public?function?xmlEnCode($code,$message,$data=array()){
??if(!is_numeric($code)){
???exit();
??}
??$result?=?array(
???'code'=>$code,
???'message'=>$message,
???'data'=>$data
???);

??/*?拼接xml格式數(shù)據(jù)?*/
??
??
??/*?這里一定要注意聲明頭部信息和XML聲明?*/
??header("Content-type:text/xml");
??$xml?=?"<?xml version = &#39;1.0&#39; encoding = &#39;UTF-8&#39;?>\n";
??$xml?.=?"<root>\n";???/*??XML標(biāo)簽其實(shí)也是字符串,所以要用?.?連接運(yùn)算符??*/
??$xml?.=?self::xmlToJson($result);?/*?調(diào)用xmlToJson函數(shù)解析數(shù)組轉(zhuǎn)換為節(jié)點(diǎn)?*/??
??$xml?.=?"</root>";
??echo?$xml;??
?}

?/**
??*遞歸拼接XML數(shù)據(jù)
??*@param?inter?code?狀態(tài)碼
??*@param?char?message?消息提示
??*@param?array?data?通信數(shù)據(jù)
??*return?string
?*/?
?public?static?function?xmlToJson($data){
??$xml?=?$attr?=?"";
??foreach($data?as?$k?=>?$v){

???/*XML不允許出現(xiàn)數(shù)字標(biāo)簽,所以要么獎數(shù)字轉(zhuǎn)化為字母,要么混合拼接,這里采用很合拼接的方式?*/
???if(is_numeric($k)){
????$attr?=?"?id?=?'{$k}'?";
????$k?=?"item";
????$xml?.="<{$k}{$attr}>\n";
????/*?因?yàn)閿?shù)組內(nèi)部可能還存在數(shù)組,所以需要自行遞歸檢查一遍,注意,在每次遞歸的時候,都要連接在$xml尾部,并換行?*/
????$xml?.=is_array($v)?self::xmlToJson($v):$v;
????$xml?.="</{$k}>\n";
???}else{
????$xml?.="<{$k}>\n";
????$xml?.=is_array($v)?self::xmlToJson($v):$v;
????$xml?.="</{$k}>\n";
???}
???
??}
??return?$xml;
?}

}

$data?=?array(
?
?'name'=>'entner',
?'type'=>array(
???0=>'a',
???1=>'b'
??)
?);
$try?=?new?Json();
$try->xmlEnCode(200,'success',$data);

Related recommendations:

Detailed explanation of the communication data encapsulation class in PHP

How to implement operation class (communication data encapsulation class) in php?

Used to analyze, monitor and transform communication data MySQL-Proxy(1)[Figure]_MySQL

The above is the detailed content of Implementation code sharing of PHP communication data encapsulation class. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to get the current session ID in PHP? How to get the current session ID in PHP? Jul 13, 2025 am 03:02 AM

The method to get the current session ID in PHP is to use the session_id() function, but you must call session_start() to successfully obtain it. 1. Call session_start() to start the session; 2. Use session_id() to read the session ID and output a string similar to abc123def456ghi789; 3. If the return is empty, check whether session_start() is missing, whether the user accesses for the first time, or whether the session is destroyed; 4. The session ID can be used for logging, security verification and cross-request communication, but security needs to be paid attention to. Make sure that the session is correctly enabled and the ID can be obtained successfully.

PHP get substring from a string PHP get substring from a string Jul 13, 2025 am 02:59 AM

To extract substrings from PHP strings, you can use the substr() function, which is syntax substr(string$string,int$start,?int$length=null), and if the length is not specified, it will be intercepted to the end; when processing multi-byte characters such as Chinese, you should use the mb_substr() function to avoid garbled code; if you need to intercept the string according to a specific separator, you can use exploit() or combine strpos() and substr() to implement it, such as extracting file name extensions or domain names.

How do you perform unit testing for php code? How do you perform unit testing for php code? Jul 13, 2025 am 02:54 AM

UnittestinginPHPinvolvesverifyingindividualcodeunitslikefunctionsormethodstocatchbugsearlyandensurereliablerefactoring.1)SetupPHPUnitviaComposer,createatestdirectory,andconfigureautoloadandphpunit.xml.2)Writetestcasesfollowingthearrange-act-assertpat

How to split a string into an array in PHP How to split a string into an array in PHP Jul 13, 2025 am 02:59 AM

In PHP, the most common method is to split the string into an array using the exploit() function. This function divides the string into multiple parts through the specified delimiter and returns an array. The syntax is exploit(separator, string, limit), where separator is the separator, string is the original string, and limit is an optional parameter to control the maximum number of segments. For example $str="apple,banana,orange";$arr=explode(",",$str); The result is ["apple","bana

JavaScript Data Types: Primitive vs Reference JavaScript Data Types: Primitive vs Reference Jul 13, 2025 am 02:43 AM

JavaScript data types are divided into primitive types and reference types. Primitive types include string, number, boolean, null, undefined, and symbol. The values are immutable and copies are copied when assigning values, so they do not affect each other; reference types such as objects, arrays and functions store memory addresses, and variables pointing to the same object will affect each other. Typeof and instanceof can be used to determine types, but pay attention to the historical issues of typeofnull. Understanding these two types of differences can help write more stable and reliable code.

Using std::chrono in C Using std::chrono in C Jul 15, 2025 am 01:30 AM

std::chrono is used in C to process time, including obtaining the current time, measuring execution time, operation time point and duration, and formatting analysis time. 1. Use std::chrono::system_clock::now() to obtain the current time, which can be converted into a readable string, but the system clock may not be monotonous; 2. Use std::chrono::steady_clock to measure the execution time to ensure monotony, and convert it into milliseconds, seconds and other units through duration_cast; 3. Time point (time_point) and duration (duration) can be interoperable, but attention should be paid to unit compatibility and clock epoch (epoch)

How to pass a session variable to another page in PHP? How to pass a session variable to another page in PHP? Jul 13, 2025 am 02:39 AM

In PHP, to pass a session variable to another page, the key is to start the session correctly and use the same $_SESSION key name. 1. Before using session variables for each page, it must be called session_start() and placed in the front of the script; 2. Set session variables such as $_SESSION['username']='JohnDoe' on the first page; 3. After calling session_start() on another page, access the variables through the same key name; 4. Make sure that session_start() is called on each page, avoid outputting content in advance, and check that the session storage path on the server is writable; 5. Use ses

How does PHP handle Environment Variables? How does PHP handle Environment Variables? Jul 14, 2025 am 03:01 AM

ToaccessenvironmentvariablesinPHP,usegetenv()orthe$_ENVsuperglobal.1.getenv('VAR_NAME')retrievesaspecificvariable.2.$_ENV['VAR_NAME']accessesvariablesifvariables_orderinphp.iniincludes"E".SetvariablesviaCLIwithVAR=valuephpscript.php,inApach

See all articles