php 格式化地址栏参数,PHP 四种URL解析处理方式的例子

本文介绍了在PHP中获取URL参数的四种方法:使用$_SERVER['QUERY_STRING']、$_SERVER['REQUEST_URI']、pathinfo和parse_url函数。详细阐述了每个方法的使用和返回结果,帮助开发者在不同场景下灵活获取URL信息。此外,还提到了正则表达式作为更精确的处理方式。
摘要由CSDN通过智能技术生成

在已知URL参数的情况下,我们可以根据自身情况采用$_GET来获取相应的参数信息($_GET[\\\'name\\\']);那,在未知情况下如何获取到URL上的参数信息呢?

第一种、利用$_SERVER内置数组变量

相对较为原始的$_SERVER['QUERY_STRING']来获取,URL的参数,通常使用这个变量返回的会是类似这样的数据:name=tank&sex=1

如果需要包含文件名的话可以使用$_SERVER["REQUEST_URI"](返回类似:/index.php?name=tank&sex=1)

第二种、利用pathinfo内置函数

01 <?php

02 $test = pathinfo("http://localhost/index.php");

03 print_r($test);

04 /*

05 结果如下

06 Array

07 (

08     [dirname] => http://localhost //url的路径

09     [basename] => index.php  //完整文件名

10     [extension] => php  //文件名后缀

11     [filename] => index //文件名

12 )

13 */

14 ?>

第三种、利用parse_url内置函数

01 <?php

02 $test = parse_url("http://localhost/index.php?name=tank&sex=1#top");

03 print_r($test);

04 /*

05 结果如下

06 Array

07 (

08     [scheme] => http //使用什么协议

09     [host] => localhost //主机名

10     [path] => /index.php //路径

11     [query] => name=tank&sex=1 // 所传的参数

12     [fragment] => top //后面根的锚点

13 )

14 */

15 ?>

第四种、利用basename内置函数

1 <?php

2 $test = basename("http://localhost/index.php?name=tank&sex=1#top");

3 echo $test;

4 /*

5 结果如下

6 index.php?name=tank&sex=1#top

7 */

8 ?>

另外,还有就是自己通过正则匹配的处理方式来获取需要的值了。这种方式较为精确,效率暂不考虑。。。

下面拓展实践下正则处理方式:

01 <?php

02 preg_match_all("/(\w =\w )(#\w )?/i","http://localhost/index.php?name=tank&sex=1#top",$match);

03 print_r($match);

04 /*

05 结果如下

06 Array

07 (

08     [0] => Array

09         (

10             [0] => name=tank

11             [1] => sex=1#top

12         )

13     [1] => Array

14         (

15             [0] => name=tank

16             [1] => sex=1

17         )

18     [2] => Array

19         (

20             [0] =>

21             [1] => #top

22         )

23 )

24 */

25 ?>

路途漫漫...还有待继续挖掘...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值