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 相关文章推荐
phpfans留言版用到的install.php
Jan 04 PHP
Phpbean路由转发的php代码
Jan 10 PHP
PHP中函数内引用全局变量的方法
Oct 20 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
apache php模块整合操作指南
Nov 16 PHP
php Session存储到Redis的方法
Nov 04 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
php把时间戳转换成多少时间之前函数的实例
Nov 16 PHP
php输出图像的方法实例分析
Feb 16 PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 PHP
php模拟post提交请求调用接口示例解析
Aug 07 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强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
JavaScript中的Location地址对象
2008/01/16 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
python为tornado添加recaptcha验证码功能
2014/02/26 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
Python3.9新特性详解
2020/10/10 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
班级活动策划书
2014/02/06 职场文书
2015年超市工作总结
2015/04/09 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
mysql中关键词exists的用法实例详解
2022/06/10 MySQL