json和xml封装数据、数据缓存到文件中
2021-06-20 06:04
标签:encoding 系统 扩展 message file sprintf 数据转换 统一 web xml:扩展标记语言,可以用来标记数据,定义数据类型,是一种允许用户对自己标记语言进行定义的源语言。XML格式统一,扩平台语言,非常适合数据传输和通信,业界公认的标准。 支持操作系统:windows、linux 支持语言:python、php、java JSON是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读,同时也方便了机器进行解析和生成。 JSON简单的说是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构,其可以将Javascript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松的传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。 JSON采用完全独立于程序语言的文本格式。JSON是理想的数据交换语言。 1、可读性方面:xml比较好 2、生成数据方面:json较优(一个函数即可) 3、传输速度方面:json胜出 从数据或者缓存中获取数据,然后通过接口数据返回给客户端 通过接口提交给服务器,然后服务器对数据进行入库处理,并返回执行结果。 通信数据的标准格式: code 状态码(200,400等) message 提示信息(提示用户的操作成功与失败) data 返回的数据 方法:json_encode($value); 注意:该函数只能接受UTF-8编码的数据,如果传递其他格式的数据的话会返回NULL json和xml封装数据、数据缓存到文件中 标签:encoding 系统 扩展 message file sprintf 数据转换 统一 web 原文地址:http://www.cnblogs.com/qijunjun/p/7190228.html 一、APP的通信格式之xml
二、APP的通信格式之json
三、APP的通信格式之区别
四、APP接口的作用
1、获取数据
2、提交数据
五、APP开发之APP接口
1、json方式封装接口数据的方法
2、json方式封装:php生成JSON数据
六、使用json和xml封装数据,代码如下:
1 php
2 class Response{
3 static public function datas($code,$message,$data,$type=‘json‘){
4 switch($type){
5 case ‘json‘:
6 return self::json($code,$message,$data);
7 break;
8 case ‘xml‘:
9 return self::xml($code,$message,$data);
10 break;
11 case ‘array‘:
12 $arr = array(
13 "code"=>$code,
14 "message" =>$message,
15 "data" =>$data,
16 );
17 var_dump($arr);
18 break;
19 default:
20 break;
21 }
22 }
23 //xml为了安全性在前面加static
24 static public function xml($code,$message,$data){
25 if(!is_numeric($code)){
26 return false;
27 }
28 if($message && $data){
29 $str = ‘30
‘.$code.‘
32 七、数据缓存到文件中,代码如下:
1 php
2 class Files{
3 public $dir;
4 public $ext = ‘.txt‘;
5 public $path;
6 public function __construct(){
7 $this->dir=dirname(__FILE__).‘/data/‘;
8 }
9 //缓存数据
10 public function CacheData($data,$paths,$time,$filename){
11 //设置缓存文件
12 $this->path=$this->dir.$paths.$filename.$this->ext;
13 if(!file_exists(dirname($this->path))){
14 mkdir(dirname($this->path));
15 }
16 if($data){
17 // 设置数据,不足10位用0补全
18 $str = sprintf(‘010%d‘,$time).$data.time();
19 //数据存在的话,对数据进行缓存
20 file_put_contents($this->path,$str);
21 }else{
22 //判断文件是否存在
23 if(!file_exists($this->path)){
24 return false;
25 }
26 //如果数据为空,删除缓存
27 if(is_null($data)){
28 //删除文件
29 unlink($this->path);
30 }
31 //定时更新
32 $datas=file_get_contents($this->path);
33 $cacheTime=substr($datas,0,10);
34 $oldTime =substr($datas,-10);
35 if($oldTime+$cacheTime >time()){
36 return substr($datas,10,-10);
37 }else{
38 return false;
39 }
40 }
41 }
42 }
43 include "Response.php";
44 header(‘content-type:text/html;charset=utf-8‘);
45 $model=new Files();
46 //删除缓存
47 $model->CacheData(null,‘user‘,‘‘,‘file1‘);
48 //$model->CacheData(‘数据‘,缓存到哪个文件中,缓存时间,‘文件名file1‘)
49 //把数据缓存到data文件下的user文件夹的stem.txt中
50 //读取缓存
51 if($data=$model->CacheData(‘123‘,‘/user/‘,100,‘file1‘)){
52 $data=json_decode($data,true);
53 var_dump($data);
54 echo "从文件获取数据";
55 }else{
56 //设置缓存
57 echo "设置数据";
58 $data = array(
59 array("name"=>"张三","age"=>"10"),
60 array("name"=>"李煜","age"=>"20"),
61 array("name"=>"李涛","age"=>"18"),
62 array("name"=>"马华","age"=>"20"),
63 array("name"=>"王子涵","age"=>"20"),
64 array("name"=>"李丽","age"=>"22"),
65 );
66 var_dump($data);
67 $str= Response::datas("200","成功",$data);
68 $model->CacheData($str,‘/user/‘,100,‘file1‘);
69 }
70 ?>