在这里openUser.php相当于一个接口 , 其中get_user_list 是一个API(获取用户列表) , 讲求返回的数据类型为JSON格式 。
你只需要在你PHP代码中执行这条链接他就会返回 。
GET方式的直接使用
$file_contents = file_get_content('http://localhost/openUser.php?act=get_user_list&type=json')
POST方式得用下面的(需要开启PHP curl支持) 。
$url = 'http://localhost/openUser.php?act=get_user_list&type=json';
$ch = curl_init ();
【在php中调用接口以及编写接口】curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt ( $ch, CURLOPT_POST, 1 ); //启用POST提交
$file_contents = curl_exec ( $ch );
curl_close ( $ch );
在php 中编写接口
一、先简单回答两个问题:
1、PHP 可以开发客户端?
答:不可以 , 因为PHP是脚本语言 , 是负责完成 B/S架构 或 C/S架构 的S部分 , 即:服务端的开发 。(别去纠结 GTK、WinBinder)
2、为什么选择 PHP 作为开发服务端的首选?
答:跨平台(可以运行在UNIX、linux、windows、mac OS下)、低消耗(PHP消耗相当少的系统资源)、运行效率高(相对而言)、MySQL的完美搭档 , 本身是免费开源的 , ......
二、如何使用 PHP 开发 API(Application Programming Interface , 应用程序编程接口) 呢?
做过 API 的人应该了解 , 其实开发 API 比开发 WEB 更简洁 , 但可能逻辑更复杂 , 因为 API 其实就是数据输出 , 不用呈现页面 , 所以也就不存在 MVC(API 只有 M 和 C) ,
1、和 WEB 开发一样 , 首先需要一些相关的参数 , 这些参数 , 都会由客户端传过来 , 也许是 GET 也许是 POST , 这个需要开发团队相互之间约定好 , 或者制定统一规范 。
2、有了参数 , 根据应用需求 , 完成数据处理 , 例如:任务进度更新、APP内购、一局游戏结束数据提交等等
3、数据逻辑处理完之后 , 返回客户端所需要用到的相关数据 , 例如:任务状态、内购结果、玩家信息等等
数据怎么返给客户端?
直接输出的形式 , 如:JSON、XML、TEXT 等等 。
4、客户端获取到你返回的数据后 , 在客户端本地和用户进行交互
临时写的一个简单 API 例子:
- <?php
- $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'=>'The uid is null!', '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,
推荐阅读
- 怀孕三个月生气的后果
- 子宫结节会自动消失吗?
- 乳腺结节的最佳治疗方法是什么?
- 月子里下体瘙痒怎么办?
- 怀孕肚子上长红点
- 中国茶具最早使用之说
- 怎么查看自己在淘宝直播间的等级 淘宝直播主播等级在哪里看
- 为啥梦里梦到的事情在现实发生了 梦到的事情在现实发生了
- 蒋培兵,古朴紫砂中的那缕灵气
- 孔相卿潜心研制的中原壶