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的FTP学习(一)
Oct 09 PHP
PHP获取网卡地址的代码
Apr 09 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
Nov 12 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
PHP filter_var() 函数 Filter 函数
Apr 25 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
Jun 27 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
php验证手机号码
Nov 11 PHP
Yii2单元测试用法示例
Nov 12 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 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 管理系统程序中的后门
2009/08/05 PHP
sae使用smarty模板的方法
2013/12/17 PHP
帝国cms常用标签汇总
2015/07/06 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
ecshop适应在PHP7的修改方法解决报错的实现
2016/11/01 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
JS event使用方法详解
2008/04/28 Javascript
模仿jQuery each函数的链式调用
2009/07/22 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
2015年安全生产责任书
2015/01/30 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL