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 __autoload函数(自动载入类文件)的使用方法
Feb 04 PHP
php中如何防止表单的重复提交
Aug 02 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
基于PHP实现等比压缩图片大小
Mar 04 PHP
php自动加载方式集合
Apr 04 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
PHP命名空间简单用法示例
Dec 28 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
Jun 13 PHP
PHP命名空间与自动加载机制的基础介绍
Aug 25 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下实现农历日历的代码
2007/03/07 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
php自动载入类用法实例分析
2016/06/24 PHP
PHP fclose函数用法总结
2019/02/15 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python距离测量的方法
2018/03/06 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
教师岗位聘任书范文
2014/03/29 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
项目经理任命书内容
2014/06/06 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
爱晚亭导游词
2015/02/09 职场文书
文化大革命观后感
2015/06/17 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫