利用PHP如何写APP接口详解


Posted in PHP onAugust 23, 2016

搭建PHP环境

由于本人使用的电脑是Mac,因此推荐大家使用MAMP PRO这款软件,不过是收费版,相信不想花钱的大家会有办法搞定的!

MAMP PRO这款软件是集成环境软件,已经有apache、mysql、php了,具备运行解析PHP的环境了!

如果不想使用集成环境,可以自己搭建。Mac自带了apache和PHP环境的,只需要稍加配置一下就可以使用了,然后再安装一下mysql就可以了!

大家可以看一下简单版本配置:Mac配置PHP环境 这篇文章。

启动服务器

这里是以MAMP PRO软件为例,如何启动服务器。如下图,我们假设服务地址为 www.api.com ,然后将项目目录与这个服务地址关联起来,看图中右下角圈圈部分:

利用PHP如何写APP接口详解

环境启动后,就可以在浏览器中直接输入 www.api.com 运行起来了!

开始GET接口

我们的空项目在首次运行后,会自动生成 index.php 这个文件,我们删除里面的内容,然后修改如下:

<?php
 
$data = array(
 'tid' => 100, 
 'name' => '标哥的技术博客',
 'site' => 'www.huangyibiao.com');
 
$response = array(
 'code' => 200, 
 'message' => 'success for request',
 'data' => $data,
 );
 
echojson_encode($response);

我们这里的结构是日常App开发中最常见的返回数据结构了吧?通常都是状态码、状态信息和客户端业务数据。

PHP其实也好给力,声明数组后,通过 json_encode 函数就可以输出json格式数据了!

iOS调GET接口

我们有了服务器,也写了接口了,那么客户端如何请求又如何获取数据呢?我们先来看一下最简单的GET请求例子,其中使用了HYBNetworking笔者的这个开源库:

NSString *url = @"http://www.api.com/index.php";
[HYBNetworkinggetWithUrl:urlrefreshCache:YESsuccess:^(id response) {
 
}fail:^(NSError *error) {
 
}];

我们看一下iOS客户端的响应结果:

利用PHP如何写APP接口详解

从响应结果可以看到,与我们服务器接口所返回的是一致的,看下图在浏览器中访问的效果:

利用PHP如何写APP接口详解

PHP POST接口

假设我们要求传参数type过来,而且要求是数值型,用于返回不同的数据,当我们做接口测试时,就可以通过这么来干,就不需要等后台给接口了!

<?php
 
$type = $_POST['type'];
$data = '';
 
if (isset($type) && is_numeric($type) && $type >= 0) {
 if ($type == 1) {
 $data = array(
  'type' => $type, 
  'name' => '标哥的技术博客',
  'site' => 'www.huangyibiao.com');
 } else if ($type == 2) {
 $data = array(
  'type' => $type, 
  'name' => '公众号:标哥的技术博客',
  'site' => 'weixin search: biaogedejishuboke');
 } 
 
 $response = array(
 'code' => 200, 
 'message' => 'success for request',
 'data' => $data,
 );
 
 echojson_encode($response);
 return;
} 
 
$response = array(
 'code' => 999, 
 'message' => 'argument error for request',
 'data' => $data,
 );
 
echojson_encode($response);

iOS调POST接口

下面是iOS客户端如何调用刚才所写的PHP POST接口,其中使用了HYBNetworking笔者的这个开源库:

NSString *url = @"http://www.api.com/index.php";
NSDictionary *params = @{@"type" : @(1)};
[HYBNetworkingpostWithUrl:urlrefreshCache:YESparams:paramssuccess:^(id response) {
 
}fail:^(NSError *error) {
 
}];

我们看看效果如下,可看到如愿地接收到了服务器返回的接口数据并解析出来了:

利用PHP如何写APP接口详解

总结

本篇文章的内容到这就基本结束了,相信大家若想学习它,一定会认真去操作一遍的!今后会慢慢接触它,慢慢掌握它,一定会让你在工作上更加顺利的!希望本文对大家能有所帮助。

PHP 相关文章推荐
php 生成饼图 三维饼图
Sep 28 PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
rrmdir php中递归删除目录及目录下的文件
May 15 PHP
php的SimpleXML方法读写XML接口文件实例解析
Jun 16 PHP
php多任务程序实例解析
Jul 19 PHP
PHP处理JSON字符串key缺少双引号的解决方法
Sep 16 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
Oct 29 PHP
CI框架中类的自动加载问题分析
Nov 21 PHP
PHP微信API接口类
Aug 22 #PHP
简单PHP会话(session)说明介绍
Aug 21 #PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 #PHP
PHP控制前台弹出对话框的实现方法
Aug 21 #PHP
php代码检查代理ip的有效性
Aug 19 #PHP
PHP中new static()与new self()的比较
Aug 19 #PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 #PHP
You might like
用PHP连接Oracle数据库
2006/10/09 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
php检查页面是否被百度收录
2015/10/28 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Python 异常处理实例详解
2014/03/12 Python
Python3之字节串bytes与字节数组bytearray的使用详解
2019/08/27 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
python学生信息管理系统实现代码
2019/12/17 Python
Python实现AI换脸功能
2020/04/10 Python
python实现人像动漫化的示例代码
2020/05/17 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
什么是Python包的循环导入
2020/09/08 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
市级青年文明号申报材料
2014/05/26 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
运动会广播稿100字
2015/08/19 职场文书