PHP使用http_build_query()构造URL字符串的方法

PHP使用http_build_query()构造URL字符串的方法,这里我们主要通过php的http_build_query函数,来格式化GET请求的参数。我们以微信网页授权接口为例。

1、明确需求

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

• 微信网页授权接口

v2 7300ee0f09fd7985ddafe5f43e06f7ab 1440w

• 高德周边检索接口

v2 a947824aabba12909aee8bb63c6f5a96 1440w

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

• 解决:通过http_build_query函数优化

v2 5fc50caf1a142569639d7243b229aea1 1440w

<?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(数组)

v2 8fd932effb3d9608cc39a170526aae1a 1440w
<?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、推进代码

v2 ef0b278d3504342becae26b4c031837b 1440w
<?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");

转载作品,原作者:黑马程序员,文章来源:

(0)
打赏 微信赞赏 微信赞赏 支付宝赞赏 支付宝赞赏
上一篇 2021-11-25 14:55
下一篇 2021-12-07 18:26

相关推荐

  • php导出Excel带图片

    php导出Excel带图片,首先安装扩展库:phpoffice/phpexcel。

    2024-11-11
    1.3K0
  • PHP中如何使用OCR技术识别图片中的文字

    PHP中如何使用OCR技术识别图片中的文字,tesseract-ocr是一个流行的开源OCR引擎库,它使用C++编写。 PHP作为一种流行的服务器端语言,也提供了一些ocr识别的库和工具。可以通过tesseract-ocr识别PDF、JPEG、GIF、PNG等格式的图像。 tesseract-ocr的最大特点是它是针对多语言设计的,可以识别世界上大部分语言的文本。

    2024-11-04
    1.5K0
  • 使用PHP处理RabbitMQ消息队列的应用

    使用PHP处理RabbitMQ消息队列的应用,消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。

    2024-09-05
    1.6K0
  • Elasticsearch搜索引擎在高性能PHP框架webman快速调用

    简介 本客户端旨在降低elasticsearch的上手难度,依赖于官方的客户端插件elasticsearch/elasticsearch。直接使用官方客户端需要手动构建复杂的请求体…

    2024-12-10
    1.4K0
  • php redis 扩展类常用操作

    php redis 扩展类常用操作(1)一、连接 redis 服务 try { $redis = new Redis(); $redis->connect(‘127.0.0.…

    Php 2022-01-03
    1.3K0
  • FlyEnv一体化全栈环境管理工具,快速设置本地开发环境,支持PHP、NodeJS、Java、Go、Rust、Python等

    FlyEnv 是一款一体化全栈环境管理工具。帮助开发者快速设置本地开发环境。无论你是使用 PHP、NodeJS、Java、Go 还是 Python,FlyEnv 都能通过一条命令集成所有必要工具。

    2025-12-12 其它
    450

发表回复

登录后才能评论
扫码了解
扫码了解
反馈建议
分享本页
返回顶部