博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用PHP做移动端 api接口开发方法(适用于TP框架)
阅读量:5010 次
发布时间:2019-06-12

本文共 4328 字,大约阅读时间需要 14 分钟。

1. [代码]使用TP框架时 放在common文件夹下文件名就叫function.php     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
 
/*************************** api开发辅助函数 **********************/
 
/**
 
* @param null $msg    返回正确的提示信息
 
* @param flag success CURD 操作成功
 
* @param array $data  具体返回信息
 
* Function descript: 返回带参数,标志信息,提示信息的json 数组
 
*
 
*/
function
returnApiSuccess(
$msg
= null,
$data
=
array
()){
    
$result
=
array
(
        
'flag'
=>
'Success'
,
        
'msg'
=>
$msg
,
        
'data'
=>
$data
    
);
    
print
json_encode(
$result
);
}
 
/**
 
* @param null $msg    返回具体错误的提示信息
 
* @param flag success CURD 操作失败
 
* Function descript:返回标志信息 ‘Error’,和提示信息的json 数组
 
*/
function
returnApiError(
$msg
= null){
    
$result
=
array
(
        
'flag'
=>
'Error'
,
        
'msg'
=>
$msg
,
    
);
    
print
json_encode(
$result
);
}
 
/**
 
* @param null $msg    返回具体错误的提示信息
 
* @param flag success CURD 操作失败
 
* Function descript:返回标志信息 ‘Error’,和提示信息,当前系统繁忙,请稍后重试;
 
*/
function
returnApiErrorExample(){
    
$result
=
array
(
        
'flag'
=>
'Error'
,
        
'msg'
=>
'当前系统繁忙,请稍后重试!'
,
    
);
    
print
json_encode(
$result
);
}
 
/**
 
* @param null $data
 
* @return array|mixed|null
 
* Function descript: 过滤post提交的参数;
 
*
 
*/
 
  
function
checkDataPost(
$data
= null){
    
if
(!
empty
(
$data
)){
        
$data
=
explode
(
','
,
$data
);
        
foreach
(
$data
as
$v
){
            
if
((!isset(
$_POST
[
$v
]))||(
empty
(
$_POST
[
$v
]))){
                
if
(
$_POST
[
$v
]!==0 &&
$_POST
[
$v
]!==
'0'
){
                    
returnApiError(
$v
.
'值为空!'
);
                
}
            
}
        
}
        
unset(
$data
);
        
$data
= I(
'post.'
);
        
unset(
$data
[
'_URL_'
],
$data
[
'token'
]);
        
return
$data
;
    
}
}
 
/**
 
* @param null $data
 
* @return array|mixed|null
 
* Function descript: 过滤get提交的参数;
 
*
 
*/
function
checkDataGet(
$data
= null){
    
if
(!
empty
(
$data
)){
        
$data
=
explode
(
','
,
$data
);
        
foreach
(
$data
as
$v
){
            
if
((!isset(
$_GET
[
$v
]))||(
empty
(
$_GET
[
$v
]))){
                
if
(
$_GET
[
$v
]!==0 &&
$_GET
[
$v
]!==
'0'
){
                    
returnApiError(
$v
.
'值为空!'
);
                
}
            
}
        
}
        
unset(
$data
);
        
$data
= I(
'get.'
);
        
unset(
$data
[
'_URL_'
],
$data
[
'token'
]);
        
return
$data
;
    
}
}

2. [代码]查询单个果品详细信息     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
    
* 发布模块
    
*
    
* 获取信息单个果品详细信息
    
*
    
*/
   
public
function
getMyReleaseInfo(){
       
//检查是否通过post方法得到数据
       
checkdataPost(
'id'
);
       
$where
[
'id'
] = 
$_POST
[
'id'
];
       
$field
[] =
'id,fruit_name,high_price,low_price,address,size,weight,fruit_pic,remark'
;
       
$releaseInfo
=
$this
->release_obj->findRelease(
$where
,
$field
);
       
$releaseInfo
[
'remark'
] =  mb_substr(
$releaseInfo
[
'remark'
],0,49,
'utf-8'
).
'...'
;
       
//多张图地址按逗号截取字符串,截取后如果存在空数组则需要过滤掉
       
$releaseInfo
[
'fruit_pic'
] = 
array_filter
(
explode
(
','
,
$releaseInfo
[
'fruit_pic'
]));
       
$fruit_pic
=
$releaseInfo
[
'fruit_pic'
];unset(
$releaseInfo
[
'fruit_pic'
]);
       
//为图片添加存储路径
       
foreach
(
$fruit_pic
as
$k
=>
$v
){
           
$releaseInfo
[
'fruit_pic'
][] = 
'http://'
.
$_SERVER
[
'HTTP_HOST'
].
'/Uploads/Release/'
.
$v
;
       
}
       
if
(
$releaseInfo
){
           
returnApiSuccess(
''
,
$releaseInfo
);
       
}
else
{
           
returnApiError(
'什么也没查到(+_+)!'
);
       
}
   
}

3. [代码]findRelease() 方法的model     

1
2
3
4
5
6
7
8
9
10
/**
    
* 查询一条数据
    
*/
   
public
function
findRelease(
$where
,
$field
){
       
if
(
$where
[
'status'
] ==
''
||
empty
(
$where
[
'status'
])){
           
$where
[
'status'
] =
array
(
'neq'
,
'9'
);
       
}
       
$result
=
$this
->where(
$where
)->field(
$field
)->find();
       
return
$result
;
   
}

4. [代码]app端接收到的数据(解码json之后:json_decode();)     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
    
"flag"
:
"success"
,
    
"message"
:
""
,
    
"responseList"
: {
        
"id"
:
"2"
,
        
"fruit_name"
:
"苹果"
,
        
"high_price"
:
"8.0"
,
        
"low_price"
:
"5.0"
,
        
"address"
:
"天津小白楼水果市场"
,
        
"size"
:
"2.0"
,
        
"weight"
:
"2.0"
,
        
"remark"
:
"急需..."
,
        
"fruit_pic"
: [
            
"http://fruit.txunda.com/Uploads/Release/201508/55599e7514815.png"
,
            
"http://fruit.txunda.com/Uploads/Release/201508/554f2dc45b526.jpg"
        
]
    
}
}

5. [代码]app端接收到的数据(原生json串) 

{

"flag":"success","message":"","responseList":{
"id":"2","fruit_name":"\u82f9\u679c","high_price":"8.0","low_price":"5.0","address":"\u5929\u6d25\u5c0f\u767d\u697c\u6c34\u679c\u5e02\u573a","size":"2.0","weight":"2.0","remark":"\u6025\u9700...","fruit_pic":["http:\/\/fruit.txunda.com\/Uploads\/Release\/201508\/55599e7514815.png","http:\/\/fruit.txunda.com\/Uploads\/Release\/201508\/554f2dc45b526.jpg"]}}

 

转载于:https://www.cnblogs.com/xuzhengzong/p/6429679.html

你可能感兴趣的文章
新博客牵至简书
查看>>
矩阵求逆
查看>>
在 Windows 8、Windows 10 桌面模式下的 .NET Framework 程序中,引用 Windows.Runtime 的 API。...
查看>>
2015 8月24号 工作计划与实行
查看>>
MVC AJAX
查看>>
Google Map API V3开发(6) 代码
查看>>
Kafka初入门简单配置与使用
查看>>
第三章Git使用入门
查看>>
Amd,Cmd, Commonjs, ES6 import/export的异同点
查看>>
开源介绍:Google Guava、Google Guice、Joda-Time
查看>>
Nginx IP 白名单设置
查看>>
Java比较两个日期的大小
查看>>
学习总结 java 输入输出流
查看>>
【Spring Boot学习之十二】mybatis3 分页打印sql日志
查看>>
div中莫名出现一些空白..
查看>>
如何在sharepoint2010中配置Google Anlytics 分析服务
查看>>
计算机启动过程(转载)
查看>>
烂笔头@WP 的博文仅供自己学习的备忘录
查看>>
cocos2dx-Lua与Java通讯机制
查看>>
上下文管理器之__enter__和__exit__
查看>>