利用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类(查找/修改)xml文档
Mar 26 PHP
记录mysql性能查询过程的使用方法
May 02 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
php生成扇形比例图实例
Nov 06 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
php 数组处理函数extract详解及实例代码
Nov 23 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
docker-compose部署php项目实例详解
Jul 30 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服务器实现多session并发运行
2006/10/09 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
Python datetime包函数简单介绍
2019/08/28 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
python3.7调试的实例方法
2020/07/21 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
《识字五》教学反思
2014/03/01 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python