您的位置:首页 > 编程语言 > PHP开发

php简单的接口

2017-03-27 23:03 387 查看
api.php :

<?php

/**
*比较标准的接口输出函数
*@param string $info message
*@param integer $code 接口错误码,很关键的参数
*@param array $data 附加数据
*$param string $location 重定向
*@return array
*/

function var_json($info='',$code=10000,$data=array(),$location='')
{
$out['code'] = $code ? : 0;
$out['info'] = $info ? : ($out['code'] ? 'error' : 'success');
$out['data'] = $data ? : array();
$out['location'] = $location;
header('Content-Type:application/json; charset=utf-8');
echo json_encode($out, JSON_HEX_TAG);
exit(0);
}

$a = empty($_GET['a']) ? '' : $_GET['a'];
$qq = empty($_GET['qq']) ? '' : intval($_GET['qq']);

//假设这是数据源,如Mysql
$data = array();
$data[979136] = array('qq'=>979136,'vip'=>5,'level'=>128,'reg_time'=>1376523234,'qb'=>300);
$data[979137] = array('qq'=>979137,'vip'=>8,'level'=>101,'reg_time'=>1377123144,'qb'=>300);

preg_match('/^[a-zA-Z]+$/', $a) || var_json('非法调用');
isset($data[$qq]) || var_json('用户不存在', 100001);

switch ($a) {
//获取用户基本信息
case 'info' :
//你的更多业务逻辑
var_json('success', 0, $data[$qq]);
break;
case 'message' :
var_json('您正在调用动态消息接口', 0);
break;
case 'friends':
var_json('你正在调用好友列表接口', 0);
break;
default:
car_json('非法调用');
}

index.php (请求接口页面) :
<?php

header('Content-type:text/html;charset=utf-8');
$url = "http://www.api.com/api.php";
$arg = array(
'a' => 'info',
'qq' => '979136',
);
//将数组变为url请求格式
$query_string = http_build_query($arg);
//curl初始化
$ch = curl_init($url.'?'.$query_string);
//设置http版本
curl_setopt($ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1);
//设置浏览器内核版本
curl_setopt($ch, CURLOPT_USERAGENT , 'QQ_Mobile_V5.5');
//设置连接超时时间
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , 60 );
//设置超时时间
curl_setopt($ch, CURLOPT_TIMEOUT , 60);
//设置,获取页面内容,不直接输出到页面
// 使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出。这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true。
curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);
// 启用时会将服务器服务器返回的"Location: "放在header中递归的返回给服务器,使用CURLOPT_MAXREDIRS可以限定递归返回的数量。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//抓取url页面内容,赋值给变量
$response = curl_exec($ch);
//获取http状态码
$httpcode = curl_getinfo($ch , CURLINFO_HTTP_CODE);
//关闭资源连接句柄
curl_close($ch);
//
if ($response === false) {
//如果$response 为 false,打印错误信息
var_dump(curl_error($ch));
} elseif ($httpcode != 200) {
//如果http状态码不等于 200 说明请求接口失败
var_dump($httpcode, '接口请求失败');
} else {
//解析json数据,参数为true时返回array / 为false,时返回 object
$ret = json_decode($response, true);
//打印返回的数据
echo '<pre>';
var_dump($ret);
echo '<pre>';

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php api