利用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在window iis的莫名问题的测试方法
May 14 PHP
php获取操作系统语言代码
Nov 04 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
php数组去除空值函数分享
Feb 02 PHP
php使用类继承解决代码重复的问题
Feb 11 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
jquery选择器简述
2015/08/31 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
中软Java笔试题
2012/11/11 面试题
化学相关工作求职信
2013/10/02 职场文书
保护动物倡议书
2014/04/15 职场文书
奖学金感谢信
2015/01/21 职场文书
优秀员工自荐书
2015/03/06 职场文书
员工手册编写范本
2015/05/14 职场文书
爱国影片观后感
2015/06/18 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
什么是css原子化,有什么用?
2022/04/24 HTML / CSS
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript