热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php开发移动端,Thinkphp框架开发移动端接口(1)

本文实例为大家分享了使用Thinkphp框架开发移动端接口代码,给原生APP提供api接口,具体内容如下1.使用TP框架时放在common文件夹下文件名

本文实例为大家分享了使用Thinkphp框架开发移动端接口代码,给原生APP提供api接口,具体内容如下

1. 使用TP框架时 放在common文件夹下文件名就叫function.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中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • Bootstrap 插件使用指南
    本文详细介绍了如何在 Web 前端开发中使用 Bootstrap 插件,包括自动触发插件的方法、插件的引用方式以及具体的实例。 ... [详细]
  • 本文探讨了 Canvas 元素在不同尺寸设置下出现变形失真的原因,并详细解释了 HTML 尺寸和 CSS 尺寸的区别及其对视觉效果的影响。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 在本文中,我们将详细介绍如何构建一个用于自动回复消息的XML类。当微信服务器接收到用户消息时,该类将生成相应的自动回复消息。以下是具体的代码实现:```phpclass We_Xml { // 代码内容}```通过这个类,开发者可以轻松地处理各种消息类型,并实现高效的自动回复功能。我们将深入探讨类的各个方法和属性,帮助读者更好地理解和应用这一技术。 ... [详细]
author-avatar
xhhh5_236
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有