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 相关文章推荐
中国站长站 For Dede4.0 采集规则
May 27 PHP
php 动态执行带有参数的类方法
Apr 10 PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 PHP
php通过记录IP来防止表单重复提交方法分析
Dec 16 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
weiphp微信公众平台授权设置
Jan 04 PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 PHP
PHP中header函数的用法及其注意事项详解
Jun 13 PHP
PHP开发之用微信远程遥控服务器
Jan 25 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
PHP进阶学习之Geo的地图定位算法详解
Jun 19 PHP
Yii框架自定义数据库操作组件示例
Nov 11 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
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
心扬JS分页函数代码
2010/09/10 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
Numpy之文件存取的示例代码
2018/08/03 Python
通过cmd进入python的步骤
2020/06/16 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
Python读写Excel表格的方法
2021/03/02 Python
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
20岁生日感言
2014/01/13 职场文书
安全生产先进个人材料
2014/02/06 职场文书
特教教师先进事迹
2014/05/21 职场文书
保护动物的标语
2014/06/11 职场文书
单位单身证明样本
2014/10/11 职场文书
2014年居委会工作总结
2014/12/09 职场文书
环卫个人总结
2015/03/03 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
用Python生成会跳舞的美女
2022/01/18 Python
git中cherry-pick命令的使用教程
2022/06/25 Servers