利用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 批量提取第一张图片最为缩略图的代码(文章+软件)
Oct 29 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
PHP防盗链代码实例
Aug 27 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
php计算title标题相似比的方法
Jul 29 PHP
php实现简易聊天室应用代码
Sep 23 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
Feb 15 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 28 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 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缓存技术详细总结
2013/08/07 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
php中使用url传递数组的方法
2015/02/11 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
js html实现计算器功能
2018/11/13 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
Python操作SQLite简明教程
2014/07/10 Python
python超简单解决约瑟夫环问题
2015/05/12 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
python 自定义对象的打印方法
2019/01/12 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
法国足球商店:Footcenter
2019/07/06 全球购物
会计工作心得体会
2014/01/13 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
vue使用watch监听属性变化
2022/04/30 Vue.js