php http_build_query来路,PHP使用http_build_query()构造URL字符串的方法

原标题:PHP使用http_build_query()构造URL字符串的方法

1、明确需求

实战工作中经常会请求各种各样的接口,例如

•微信网页授权接口

c4774796ba3bb7507a268e0429cad1f0.png

• 高德周边检索接口

ebc2f7238eb9c2ab9da1cec1523e8138.png

•发现:下图是根据接口文档开发后的代码,发现代码可读性差(ps. 参数的作用不详)

• 解决:通过http_build_query函数优化

b0c215a2f0d029d1a01feb3cbaa53acc.png

###微信网页授权接口

//1.声明接口

$api = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx56e3e3d75414b3d0&redirect_uri=http://itcast.cn/login.php&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";

//2.跳转授权页面

header("Location: $api");

echo '


';

###高德地图周边检索接口

//1.声明接口

$api = "http://restapi.amap.com/v3/place/around?key=b94b446f4ecad8b4f0e6cf758bacf915&location=121.611809,31.034800&keywords=如家&types=&radius=50000&offset=20&page=1&extensions=all";

//2.请求接口

$data = file_get_contents($api);

//3.打印结果

var_dump($data);

2、语法说明

作用:将数组转化为GET形式(输出结果 -> 数组键1=数组值1&....数组键n=数组值n)

语法:http_build_query(数组)

e2e03088a18f6ba46b3b1b776f990e19.png

//声明接口数据

$apiData = [

'user' => 'z3',

'age' => 18,

'sex' => 'boy'

];

//将接口数据转化为GET形式字符串

echo http_build_query($apiData);

3、分析步骤

这里我们主要通过php的http_build_query函数,来格式化GET请求的参数。我们以微信网页授权接口为例,实现过程非常简单,一共只需要2个步骤:

① 将接口参数放到数组中

② 通过php的http_build_query函数来格式化GET请求的参数

接下来,我们老师将带领大家通过以上2个步骤来实现接口代码优化....

4、推进代码

205d986173f4102cbbee48c35367c790.png

###微信网页授权接口

//1.声明接口数据

$apiData = [

'appid' => 'wx56e3e3d75414b3d0', //公众号的唯一标识

'redirect_uri' => 'http://itcast.cn/login.php', //授权后重定向的回调链接地址

'response_type' => 'code', //返回类型,请填写code

'scope' => 'snsapi_base', //应用授权作用域:snsapi_base/snsapi_userinfo

'state' => 'STATE#wechat_redirect' //必填参数

];

//2.声明接口

$api = "https://open.weixin.qq.com/connect/oauth2/authorize?".http_build_query($apiData);

//3.跳转授权页面

header("Location: $api");

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值