php拼接url(php输出拼接字符串正确的是)

   360SEO    

今天开发sass管理后台时,遇到这样一个需求:商户在平台设置自己平台的url,平台需要针对当前url拼接平台给定的参数。

以前也经常遇到这类需要,但是总是忘记具体代码,今天我就总结一下吧!

PHP解析URL

在我的记忆中,PHP解析url时经常使用【 pathinfo 】函数,但是经常会遇到各种奇葩问题,所以今天我们使用【 parse_url 】来解析url。

最开始我想着参数不多就自己直接在用户设置的url后拼接参数,代码如下:

但是到了后期,发现商户设置的url中可能带有参数,此时代码就不能这么写了,否则就会出现两个【?】及重复的参数,于是自己封装了一个,完整代码如下:

其中【 parse_url 】函数是PHP内置函数,主要作用就是解析url,大致结果如下:

如果url只有域名和参数时,返回的结果中没有【 path 】这个字段。如果url中没有参数,返回的结果中也没有query这个字段

从上面的结果可以看出query没有结构化,我们需要将query进行解析成数组的形式,解析代码如下:

到此PHP解析url的代码就已经说明清楚了,希望正在看文章的你有所帮助

JS解析URL

js解析URL代码与PHP大致相同,只是将【 parse_url 】换成【 new URL 】对象,完整代码如下:

注意: query 可能为空,所以上述代码判断了参数是否存在

网上有很多人使用【 urlObj.query 】的方式获取请求参数,本人尝试过,很多时候是没有这个属性字段的,所以我使用了【 urlObj.search 】获取请求参数

有遗漏或者不对的可以在我的公众号留言哦

 标签:

评论留言

我要留言

欢迎参与讨论,请在这里发表您的看法、交流您的观点。