利用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 curl_setopt()函数实例代码与参数分析
Jun 02 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
smarty自定义函数htmlcheckboxes用法实例
Jan 22 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
Yii2 批量插入、更新数据实例
Mar 15 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
如何在PHP中使用AES加密算法加密数据
Jun 24 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 数据
2009/08/15 PHP
PHP单例模式详细介绍
2015/07/01 PHP
php登录超时检测功能实例详解
2017/03/21 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
python3处理word文档实例分析
2020/12/01 Python
Pandas之缺失数据的实现
2021/01/06 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
入党转预备思想汇报
2014/01/07 职场文书
运动会稿件50字
2014/02/17 职场文书
初中军训感想300字
2014/03/05 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
个人培训自我鉴定
2014/03/28 职场文书
汽车促销活动方案
2014/03/31 职场文书
公司董事长岗位职责
2014/06/08 职场文书
临床医学专业求职信
2014/08/08 职场文书
员工离职通知函
2015/04/25 职场文书
大学生暑假实习总结
2015/07/13 职场文书
学校标语口号大全
2015/12/26 职场文书
python实现进度条的多种实现
2021/04/29 Python
Python四款GUI图形界面库介绍
2022/06/05 Python
js 实现验证码输入框示例详解
2022/09/23 Javascript