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

1、明确需求

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

• 微信网页授权接口

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

• 高德周边检索接口

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

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

• 解决:通过http_build_query函数优化

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

<?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使用http_build_query()构造URL字符串的方法

<?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使用http_build_query()构造URL字符串的方法

<?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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021-12-05 12:59
下一篇 2021-12-06 11:05

相关推荐

  • 前端上传大文件怎么处理

    背景 当我们在做文件的导入功能的时候,如果导入的文件过大,可能会导所需要的时间够长,且失败后需要重新上传,我们需要前后端结合的方式解决这个问题 思路 我们需要做几件事情如下: 对文…

    JavaScript 2022-01-19
    01680
  • HiPrint 免费、简单、快速的JS打印插件,快速分页预览、打印、转pdf

    项目地址:http://hiprint.io/ Hiprint介绍 hiprint 是一个web 打印的js组件,无需安装软件。支持windows,macOS,linux 系统,支…

    2024-12-05
    01060
  • 先睹为快即将到来的HTML6

    HTML,超文本标记语言,是一种用于创建网页的标准标记语言。自从引入 HTML 以来,它就一直用于构建互联网。与 JavaScript 和 CSS 一起,HTML 构成前端开发的三…

    2021-11-24
    02.9K0
  • 解决访问国外公共静态资源速度慢的问题

    由于众所周知的原因,jsdelivr国内被墙,部分地区可能无法正常访问,其他国外的公共静态资源也存在访问速度慢或无法正常访问的问题,为解决该问题,辉哥博客&蓝易云安全开发了国外静态资源js和css资源CDN替换国内的脚本,供所有用户免费使用。

    2022-06-29
    02020
  • watermark-js-plus高级的水印插件

    项目地址:https://zhensherlock.github.io/watermark-js-plus/zh/ GitHub地址:https://github.com/zhen…

    2024-12-05 JavaScript
    0430
  • PHP中如何使用OCR技术识别图片中的文字

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

    2024-11-04
    01290

发表回复

登录后才能评论
分享本页
返回顶部