今天开发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 】获取请求参数
有遗漏或者不对的可以在我的公众号留言哦
评论留言