使用PHP做移动端 api接口开发方法(适用于TP框架)
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"
]}}