ホームページ  >  記事  >  バックエンド開発  >  php-appインターフェイスの実装(jsonおよびxml)

php-appインターフェイスの実装(jsonおよびxml)

WBOY
WBOYオリジナル
2016-07-30 13:31:441305ブラウズ

1. 復習

前回の記事では、mysql をカプセル化するインスタンス化されたオブジェクト クラスについて学びました。

2. この記事では、json データと xml データを生成するアプリ インターフェイス クラスをカプセル化します

3.1 xml と json の違い

xml: 拡張タグ言語: データをマークしてデータ型を定義できます。 json: データを生成するのが簡単で、転送速度が速いです



3.3 通信データ標準形式

ステータスコード: コード プロンプト情報: メッセージ
オフ
3.4 スケジュールされたタスクとキャッシュ (ここではカプセル化されていません)

キャッシュ: 静的キャッシュ、Memcache および Redis キャッシュ テクノロジi タイミングタスク: Corntab

4. パッケージ化


4.1 JSON パッケージ化

JSON メソッドのパッケージング インターフェース データ メソッド function json_encode () 4.2 xml のカプセル化

紐の組み立て(簡単) )
4.3 実装クラス

<?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;
	}
	
}

?>

4.4 呼び出し

URL、表示を通じて実装 データ型は、xml、json、array にすることができます

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

Test.php は次のように実装されます5. 前の記事に基づいて、mysql データベース実装に接続します: データのカプセル化

require_once 'appUtil.php';


6. appUtil.php をダウンロードします。

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

著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく転載することはできません。
上記では、関連するコンテンツを含む php-app インターフェイスの実装 (json および xml) を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。