利用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数组函数序列之array_flip() 将数组键名与值对调
Nov 07 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
PHP代码优化之成员变量获取速度对比
Feb 28 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
PHP引用返回用法示例
May 28 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
PHP中类的自动加载的方法
Mar 17 PHP
php中bind_param()函数用法分析
Mar 28 PHP
PHP crypt()函数的用法讲解
Feb 15 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 和 HTML
2006/10/09 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
php通过会话控制实现身份验证实例
2016/10/18 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
js中style.display=&quot;&quot;无效的解决方法
2014/10/30 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
javascript回调函数详解
2018/02/06 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
python检测IP地址变化并触发事件
2018/12/26 Python
python 字典操作提取key,value的方法
2019/06/26 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
毕业生在校学习的自我评价分享
2013/10/08 职场文书
应届生人事助理求职信
2013/11/09 职场文书
大学生预备党员自我评价分享
2013/11/16 职场文书
年终考核评语
2014/01/19 职场文书
医药营销个人求职信范文
2014/02/07 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
事业单位岗位说明书
2015/10/08 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android