Heim > Artikel > Backend-Entwicklung > Implementierung der PHP-App-Schnittstelle (JSON und XML)
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 JSONXML: erweiterte Auszeichnungssprache: kann Daten markieren und Datentypen definieren; das Datenformat ist klar und lesbar;
json: ein leichtes Datenaustauschformat; einfach zu generierende Daten; schnelle Übertragung;
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
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='json'; /** * 01.综合通信入口 * @param int $code * @param string $msg * @param array $data * @param string $type */ public static function show($code,$msg='',$data=array()){ if(!is_numeric($code)){ return ''; } //如果url上传参了,去参数的类型,否则取得默认值! $type=isset($_GET['type'])?$_GET['type']:self::JSON; $result=array( 'code'=>$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='1.0' encoding='UTF-8'?>"; $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);
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.