Heim  >  Artikel  >  Backend-Entwicklung  >  Implementierung der PHP-App-Schnittstelle (JSON und XML)

Implementierung der PHP-App-Schnittstelle (JSON und XML)

WBOY
WBOYOriginal
2016-07-30 13:31:441306Durchsuche

1. Überprüfung

Im vorherigen Artikel haben wir etwas über die instanziierte Objektklasse gelernt, die MySQL kapselt!

2. Dieser Artikel kapselt eine App-Schnittstellenklasse zum Generieren von JSON-Daten und XML-Daten

3 🎜>

3.1 Der Unterschied zwischen XML und JSON

XML: erweiterte Auszeichnungssprache: kann Daten markieren und Datentypen definieren; das Datenformat ist klar und lesbar;

json: ein leichtes Datenaustauschformat; einfach zu generierende Daten; schnelle Übertragung;

3.2 App-Schnittstelle und Daten

Daten abrufen: Holen Sie sich die Daten aus der Datenbank oder dem Cache (können Daten im Cache sein)

Senden Sie die Daten: Senden Sie die Daten über die GET- oder POST-Methode >



                                                                                                                                                                         Tipps Informationen: Nachricht
Rückgabedaten: Daten

3.4 Geplante Aufgaben und Cache (hier nicht gekapselt)

Cache: statisch Cache, Memcache und Redis-Caching-Technologie

Geplante Aufgaben: Corntab



4. Kapselung

4.1 JSON-Kapselung


                                                                                                                                                                                           4.2 XML-Verpackung

zusammengesetzte Zeichenfolge (einfach)

Die Methode zur Verwendung des Systems

4.3 Implementierungsklasse



4.4 Aufruf

Realisiert über die URL , der Anzeigedatentyp kann XML, JSON, Array sein!

test.php wird wie folgt implementiert:

<?php

//header("Content-type:text/html;charset=utf-8");

class Response{
	
	const JSON=&#39;json&#39;;
	/**
	 * 01.综合通信入口
	 * @param int $code
	 * @param string $msg
	 * @param array $data
	 * @param string $type
	 */
	public static function show($code,$msg=&#39;&#39;,$data=array()){
		
		if(!is_numeric($code)){
			return &#39;&#39;;
		}
		//如果url上传参了,去参数的类型,否则取得默认值!
		$type=isset($_GET[&#39;type&#39;])?$_GET[&#39;type&#39;]:self::JSON;
		
		
		$result=array(
				&#39;code&#39;=>$code,
				'msg'=>$msg,
				'data'=>$data
		);
		if($type=='json'){
			self::jsonEncode($code,$msg,$data);
			exit();
		}elseif ($type=='xml'){
			self::xmlEncode($code,$msg,$data);
			exit();
		}elseif ($type='array'){
			var_dump($result);
			exit();
		}
		
	}
	
	/**
	 * 02.按json方式输出 通信数据
	 * @param int $code 状态码
	 * @param string $msg 提示信息
	 * @param array $data 数据
	 * retrun string 
	 */
	public static function jsonEncode($code,$msg='',$data=array()) {
		header("Content-Type:text/json");
		#判断状态码
		if(!is_numeric($code)){
			return '';
		}
		$result=array(
				'code'=>$code,
		        'msg'=>$msg,
				'data'=>$data
		);
		
		echo json_encode($result);
		exit();
	}
	
	
    /**
     * 03.封装xml 输出通信数据
     * @param unknown $code
     * @param unknown $msg
     * @param unknown $data
     */
	public static function xmlEncode($code,$msg='',$data=array()){
		
		
		if(!is_numeric($code)){
           return '';
		}

		$result=array(
				'code'=>$code,
				'msg'=>$msg,
				'data'=>$data
		);
		
		header("Content-Type:text/xml");
		$xml="<?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>";
		$xml.="<root>";
		$xml.=self::xmlToEncode($result);
		$xml.="</root>";
		echo $xml;
		
		exit();
	}
	
	/**
	 *04. 拼装 xml数据
	 * @param array $data
	 * @return string
	 * 使用递归,判断是不是数组,是数组继续调用循环
	 * xml的 节点不能为 数字,用item代替
	 */
	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;
	}
	
}

?>

5. Umfassende Implementierung der Verbindung zur MySQL-Datenbank im vorherigen Artikel: Datenkapselung

6. appUtil.php herunterladen

http://localhost:8081/appInterface/test.php?type=json

http://download.csdn.net/detail/lablenet/ 8995987

require_once 'appUtil.php';
$arr=array(
		'id'=>1,
		'name'=>'yuan',
		'age'=>23,
		'location'=>'hpu'
);

$arr1=array(1,4,5,2,6,3);

Response::jsonEncode(200,'success',$arr);

Urheberrechtserklärung: Dieser Artikel Dies ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.

Das Obige stellt die Implementierung der PHP-App-Schnittstelle (JSON und XML) vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn