欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php-app接口实现(json和xml)

程序员文章站 2022-04-01 20:37:35
...
1.回顾

上篇学习了封装mysql的实例化对象类!

2.这篇将封装一个app接口类,用来生成 json数据和xml数据

3.了解和掌握

3.1 xml和json的区别

xml:扩展标记语言:可以标记数据 ,定义数据类型;数据格式清晰明了, 可读性高;
json:一种轻量级的数据交换格式;生成数据简单;传输速度快;

3.2 app接口与数据

获取数据:从数据库中或者缓存中获取数据(可以是缓存里的数据)
提交数据:通过get方式或者post方式提交数据,服务端处理后,返回数据

3.3 通信数据标准格式

状态码:code
提示信息:message
返回数据: data

3.4 定时任务和缓存 (这里不封装)

缓存 :静态缓存 , Memcache 和 Redis 缓存技术
定时任务 :corntab

4.封装

4.1 json封装

json方式封装接口数据方法
函数json_encode();
只接收utf-8的编码数据

4.2 xml封装

组装字符串 (简单)
使用系统的方法

4.3 实现类

$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.="";
		$xml.=self::xmlToEncode($result);
		$xml.="";
		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.="";
			$xml.=is_array($value)?self::xmlToEncode($value):$value;
			$xml.="{$key}>";
		}
		return $xml;
	}
	
}

?>

4.4 调用

通过url实现 ,显示数据类型 type可以为 xml ,json ,array !

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

test.php 实现如下:

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);

5.综合 上篇连接mysql数据库 实现:数据封装

//调用
$con=Db::getInstance()->connect();

//查询语句
$sql='select * from user_info';
//执行,返回结果集
$result=mysql_query($sql,$con);
//添加的新数组
$arr3=array();
while ($row=mysql_fetch_row($result)){
	array_push($arr3,$row);
}
Response::show('200','success',$arr3);

6. appUtil.php下载

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了php-app接口实现(json和xml),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

php-app接口实现(json和xml)

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频