<?php

//简单形式

header('Content-Type:text/html;charset=utf-8'); //避免输出乱码

$output = array();

$a = @$_GET['a'] ? $_GET['a'] : '';

$uid = @$_GET['uid'] ? $_GET['uid'] : 0;

if (empty($a)) {

$output = array('data'=>NULL, 'info'=>'坑爹啊!', 'code'=>-201);

exit(json_encode($output));

}

//

//走接口

if ($a == 'get_users') {

//检查用户

if ($uid == 0) {

$output = array('data'=>NULL, 'info'=>'uid是空的', 'code'=>-401);

exit(json_encode($output));

}

//假设 $mysql 是数据库

$mysql = array(

10001 => array(

'uid'=>10001,

'vip'=>5,

'nickname' => 'Shine X',

'email'=>'979137@qq.com',

'qq'=>979137,

'gold'=>1500,

'powerplay'=> array('2xp'=>12,'gem'=>12,'bingo'=>5,'keys'=>5,'chest'=>8),

'gems'=> array('red'=>13,'green'=>3,'blue'=>8,'yellow'=>17),

'ctime'=>1376523234,

'lastLogin'=>1377123144,

'level'=>19,

'exp'=>16758,

),

10002 => array(

'uid'=>10002,

'vip'=>50,

'nickname' => 'elva',

'email'=>'elva@ezhi.net',

'qq'=>NULL,

'gold'=>14320,

'powerplay'=> array('2xp'=>1,'gem'=>120,'bingo'=>51,'keys'=>5,'chest'=>8),

'gems'=> array('red'=>13,'green'=>3,'blue'=>8,'yellow'=>17),

'ctime'=>1376523234,

'lastLogin'=>1377123144,

'level'=>112,

'exp'=>167588,

),

10003 => array(

'uid' => 10003,

'vip' => 5,

'nickname' => 'Lily',

'email' => 'Lily@ezhi.net',

'qq' => NULL,

'gold' => 1541,

'powerplay'=> array('2xp'=>2,'gem'=>112,'bingo'=>4,'keys'=>7,'chest'=>8),

'gems' => array('red'=>13,'green'=>3,'blue'=>9,'yellow'=>7),

'ctime' => 1376523234,

'lastLogin'=> 1377123144,

'level' => 10,

'exp' => 1758,

),

);

$uidArr = array(10001,10002,10003);

if (in_array($uid, $uidArr, true)) {

$output = array('data' => NULL, 'info'=>'The user does not exist!', 'code' => -402);

exit(json_encode($output));

}

//查询数据库

$userInfo = $mysql[$uid];

//输出数据

$output = array(

'data' => array(

'userInfo' => $userInfo,

'isLogin' => true,//是否首次登陆

'unread' => 4,//未读消息数量

'untask' => 3,//未完成任务

),

'info' => 'Here is the message which, commonly used in popup window', //消息提示,客户端常会用此作为给弹窗信息。

'code' => 200, //成功与失败的代码,一般都是正数或者负数

);

exit(json_encode($output));

} elseif ($a == 'get_games_result') {

//...

die('您正在调 get_games_result 接口!');

} elseif ($a == 'upload_avatars') {

//....

die('您正在调 upload_avatars 接口!');

}

//调用测试http://localhost:63342/HelloPHP/API.php?a=get_users&uid=10001

//返回结果

{

"data": {

"userInfo": {

"uid": 10001,

"vip": 5,

"nickname": "Shine X",

"email": "979137@qq.com",

"qq": 979137,

"gold": 1500,

"powerplay": {

"2xp": 12,

"gem": 12,

"bingo": 5,

"keys": 5,

"chest": 8

},

"gems": {

"red": 13,

"green": 3,

"blue": 8,

"yellow": 17

},

"ctime": 1376523234,

"lastLogin": 1377123144,

"level": 19,

"exp": 16758

},

"isLogin": true,

"unread": 4,

"untask": 3

},

"info": "Here is the message which, commonly used in popup window",

"code": 200

}

//例子二:

//开始GET接口

//我们的空项目在首次运行后,会自动生成 index.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格式数据了!

//PHP POST接口

//假设我们要求传参数type过来,而且要求是数值型,用于返回不同的数据,当我们做接口测试时,就可以通过这么来干,就不需要等后台给接口了!

//

$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);

//本篇就到此为止吧,相信大家若想学习它,一定会认真去操作一遍的!

php api 接口的更多相关文章

  1. 干货来袭-整套完整安全的API接口解决方案

    在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...

  2. 12306官方火车票Api接口

    2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...

  3. 快递Api接口 & 微信公众号开发流程

    之前的文章,已经分析过快递Api接口可能被使用的需求及场景:今天呢,简单给大家介绍一下微信公众号中怎么来使用快递Api接口,来完成我们的需求和业务场景. 开发语言:Nodejs,其中用到了Neo4j图 ...

  4. web api接口同步和异步的问题

    一般来说,如果一个api 接口带上Task和 async 一般就算得上是异步api接口了. 如果我想使用异步api接口,一般的动机是我在我的方法里面可能使用Task.Run 进行异步的去处理一个耗时的 ...

  5. HTTP API接口安全设计

    HTTP API接口安全设计 API接口调用方式 HTTP + 请求签名机制   HTTP + 参数签名机制 HTTPS + 访问令牌机制 有没有更好的方案? OAuth授权机制 OAuth2.0服务 ...

  6. Postman - 功能强大的 API 接口请求调试和管理工具

    Postman 是一款功能强大的的 Chrome 应用,可以便捷的调试接口.前端开发人员在开发或者调试 Web 程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的 Fi ...

  7. H3 BPM引擎API接口

    引擎API接口通过 Engine 对象进行访问,这个是唯一入口. 示例1:获取组织机构对象 this.Engine.Organization.GetUnit("组织ID"); 示例 ...

  8. 移动端API接口优化的术和结果

    最近一直在忙工作的事情,所以文章写得有些少. 有3-5篇文章都是写到一半然后被别的事情给打断了,所以,我得找个时间好好补补. 最近一直在关注移动端接口API的可用性问题,在移动时代这个做这个优化能产生 ...

  9. Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试 (转)

    环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...

  10. ASP.NET获取百度地图提供的API接口里面的JSON

    思路:开始是想直接在前台获取,但是跨域访问还是有点难度,而且格式必须是josnp格式的,最后嫌麻烦,不得已放弃. 我做的ASP.NET  而这个有自带的解析类,直接引用就行了 先在后台获取到JOSN: ...

随机推荐

  1. [Vijos 1676] 陶陶吃苹果

    Description curimit知道陶陶很喜欢吃苹果.于是curimit准备在陶陶生日的时候送给他一棵苹果树. curimit准备了一棵这样的苹果树作为生日礼物:这棵苹果树有n个节点,每个节点上 ...

  2. ajax与文件上传

    一.ajax ajax(Asynchronous JavaScript And XML):异步JavaScript和XML,即使用JavaScript语句与服务器进行异步交互,传输的数据为XML(也可 ...

  3. MailBee.NET

    MailBee.NET Objects 是一款为创建.发送.接收以及处理电子邮件而设计的健壮.功能丰富的.NET控件.具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加 ...

  4. 【SQL】小心在循环中声明变量——浅析SQL变量作用域

    本文适用:T-SQL(SQL Server) 先看这个语句: --跑3圈 BEGIN --每圈都定义一个表变量,并插入一行 DECLARE @t TABLE(Col INT PRIMARY KEY) ...

  5. 【Spring】14、SpringMVC拦截器的配置

    拦截器: com.zk.interceptors.MyInterceptor 实现了 HandlerInterceptor接口,可以拦截@RequestMapping注解的类和方法 第一种方式 < ...

  6. ServletConfig与ServletContext对象详解

    一.ServletConfig对象 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个w ...

  7. OAuth2.0的refresh token

    最近看人人网的OAuth认证,发现他是OAuth2.0,之前一直看的是新浪的OAuth,是OAuth1.0. 二者还是有很多不同的,主要的不同点在access token的获取方式. OAuth1.0 ...

  8. sessionStorage记录返回前端的数据,用于解决登录拦截器刷新页面的问题

    1.问题出现的场景与解决 实现一个登录拦截器,重写doFilter方法,判断用户的登录状态,在用户长时间未操作或者异地登录时前端进行提示,完整代码如下 public class LoginValida ...

  9. PHP 在WIN10 下配置

    apache: https://www.apachehaus.com/ php: https://windows.php.net/ https://windows.php.net/ 集成安装配置版:h ...

  10. python爬虫实例--网易云音乐排行榜爬虫

    网易云音乐,以前是有个api 链接的json下载的,现在没了, 只有音乐id,title , 只能看播放请求了, 但是播放请求都是加密的值,好坑... 进过各种努力, 终于找到了个大神写的博客,3.6 ...