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中实现汉字转区位码应用源码实例解析
Jun 14 PHP
一个漂亮的php验证码类(分享)
Aug 06 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
PHP小技巧之函数重载
Jun 02 PHP
php获取访问者IP地址汇总
Apr 24 PHP
详解PHP的Yii框架中日志的相关配置及使用
Dec 08 PHP
Zend Framework框架路由机制代码分析
Mar 22 PHP
关于php中一些字符串总结
May 05 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
php中使用websocket详解
Sep 23 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
Nov 09 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
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
php 字符串替换的方法
2012/01/10 PHP
基于php权限分配的实现代码
2013/04/28 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
21行Python代码实现拼写检查器
2016/01/25 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
学生顶撞老师的检讨书
2014/09/17 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
上班迟到检讨书
2015/05/06 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server