利用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 相关文章推荐
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
php判断页面是否是微信打开的示例(微信打开网页)
Apr 25 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
PHP CURL 多线程操作代码实例
May 13 PHP
PHP微信开发之有道翻译
Jun 23 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
php获取微信基础接口凭证Access_token
Aug 23 PHP
php优化查询foreach代码实例讲解
Mar 24 PHP
PHP实现创建以太坊钱包转账等功能
Apr 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
thinkphp关于简单的权限判定方法
2017/04/03 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
CCPry JS类库 代码
2009/10/30 Javascript
围观tangram js库
2010/12/28 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
2015/12/04 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
Python编码爬坑指南(必看)
2016/06/10 Python
Python实现八大排序算法
2016/08/13 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Python实现简单的语音识别系统
2017/12/13 Python
python样条插值的实现代码
2018/12/17 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
详解python-图像处理(映射变换)
2019/03/22 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
简历上的自我评价
2014/02/03 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
于丹论语心得观后感
2015/06/15 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
Python IO文件管理的具体使用
2022/03/20 Python