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扩展函数
Oct 09 PHP
PHP中通过加号合并数组的一个简单方法分享
Jan 27 PHP
php中日期加减法运算实现代码
Dec 08 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
PHP中返回引用类型的方法
Apr 03 PHP
项目中应用Redis+Php的场景
May 22 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
PHP登录(ajax提交数据和后台校验)实例分享
Dec 29 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 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
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
jQuery的slideToggle方法实例
2013/05/07 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
node中Express 动态设置端口的方法
2017/08/04 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
pycharm 解除默认unittest模式的方法
2018/11/30 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
资深地理教师自我评价
2013/09/21 职场文书
市场营销专业个人自荐信格式
2013/09/21 职场文书
代理班主任的自我评价
2014/02/04 职场文书
致800米运动员广播稿
2014/02/16 职场文书
益达广告词
2014/03/14 职场文书
幼师求职自荐信
2014/05/31 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
2015年度企业工作总结
2015/05/21 职场文书
处罚决定书范文
2015/06/24 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
Java 定时任务技术趋势简介
2022/05/04 Java/Android