利用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 date函数参数详解
Nov 27 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
Windows中使用计划任务自动执行PHP程序实例
May 09 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
PHP获取QQ达人QQ信息的方法
Mar 05 PHP
PHP中基本HTTP认证技巧分析
Mar 16 PHP
摘自织梦CMS中的图片处理类
Aug 08 PHP
PHP微信开发之查询城市天气
Jun 23 PHP
Yii安装与使用Excel扩展的方法
Jul 13 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
PHP日期和时间函数的使用示例详解
Aug 06 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
提问的智慧
2006/10/09 PHP
第九节 绑定 [9]
2006/10/09 PHP
PHP 可阅读随机字符串代码
2010/05/26 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
最简单的tab切换实例代码
2016/05/13 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
原生js实现下拉框选择组件
2021/01/20 Javascript
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python概率计算器实例分析
2015/03/25 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
windows下python安装pip图文教程
2018/05/25 Python
Python如何根据时间序列数据作图
2020/05/12 Python
python属于跨平台语言码
2020/06/09 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
Java servlet面试题
2012/03/04 面试题
外语专业毕业生个人的自荐信
2013/11/19 职场文书
外贸业务员岗位职责
2013/11/24 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
农业开发项目建议书
2014/05/16 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
redis lua限流算法实现示例
2022/07/15 Redis
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python