1、明确需求
实战工作中经常会请求各种各样的接口,例如
• 微信网页授权接口
• 高德周边检索接口
• 发现:下图是根据接口文档开发后的代码,发现代码可读性差(ps. 参数的作用不详)
• 解决:通过http_build_query函数优化
<?php ###微信网页授权接口 //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 '<hr />'; ###高德地图周边检索接口 //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(数组)
<?php //声明接口数据 $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、推进代码
<?php ###微信网页授权接口 //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");
转载作品,原作者:黑马程序员,文章来源:https://www.toutiao.com/i6675535168280723975/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1×tamp=1638695167&app=news_article&utm_source=weixin&utm_medium=toutiao_ios&use_new_style=1&req_id=2021120517060701021002713820A748D6&share_token=6E0E0976-1F67-4DE6-A81A-54D66D42DACD&group_id=6675535168280723975