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 相关文章推荐
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
php 注释规范
Mar 29 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
php定时删除文件夹下文件(清理缓存文件)
Jan 23 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
thinkPHP5.0框架命名空间详解
Mar 18 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 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
基于mysql的论坛(3)
2006/10/09 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
javascript操作符&quot;!~&quot;详解
2015/02/10 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
详解从Vue-router到html5的pushState
2018/07/21 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
Python写的贪吃蛇游戏例子
2014/06/16 Python
pygame学习笔记(2):画点的三种方法和动画实例
2015/04/15 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
学生打架检讨书大全
2014/01/23 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
合作意向书模板
2014/03/31 职场文书
应届大学生求职信
2014/07/20 职场文书
离婚协议书格式
2015/01/26 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
单位车辆管理制度
2015/08/05 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
Golang表示枚举类型的详细讲解
2021/09/04 Golang
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android