Thinkphp框架开发移动端接口(1)


Posted in PHP onAugust 18, 2016

本文实例为大家分享了使用Thinkphp框架开发移动端接口代码,给原生APP提供api接口,具体内容如下

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

<?php
/**
 * Created by zhangkx
 * Email: zkx520tnhb@163.com
 * Date: 2015/8/1
 * Time: 23:15
 */
  
/*************************** 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 $k=>$v){
   if((!isset($_POST[$k]))||(empty($_POST[$k]))){
    if($_POST[$k]!==0 && $_POST[$k]!=='0'){
     returnApiError($k.'值为空!');
    }
   }
  }
  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 $k=>$v){
   if((!isset($_GET[$k]))||(empty($_GET[$k]))){
    if($_GET[$k]!==0 && $_GET[$k]!=='0'){
     returnApiError($k.'值为空!');
    }
   }
  }
  unset($data);
  $data = I('get.');
  unset($data['_URL_'],$data['token']);
  return $data;
 }
}

2. 查询单个果品详细信息    

/**
 * 发布模块
 * 
 * 获取信息单个果品详细信息
 *
 */
 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    

/**
 * 查询一条数据
 */
 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之后)    

{
 "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"
  ]
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
文件上传的实现
Oct 09 PHP
PHP 第二节 数据类型之数组
Apr 28 PHP
ThinkPHP CURD方法之data方法详解
Jun 18 PHP
PHP中array_slice函数用法实例详解
Nov 25 PHP
php实现递归与无限分类的方法
Feb 16 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
PHP生成(支持多模板)二维码海报代码
Apr 30 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 PHP
PHP大文件切割上传功能实例分析
Jul 01 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 #PHP
PHP文件下载实例代码浅析
Aug 17 #PHP
PHP Ajax实现无刷新附件上传
Aug 17 #PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 #PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 #PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
Aug 17 #PHP
总结PHP中数值计算的注意事项
Aug 14 #PHP
You might like
PHP 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
PHP 递归效率分析
2009/11/24 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
document.compatMode介绍
2009/05/21 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
jQuery中的for循环var与let的区别
2018/04/21 jQuery
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
django使用JWT保存用户登录信息
2020/04/22 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
电子信息专业应届生自荐信
2014/06/04 职场文书
毕业生求职信
2014/06/10 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
2015年工程部工作总结
2015/04/30 职场文书
2015年预算员工作总结
2015/05/14 职场文书