温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

利用php怎么对url参数进行解析

发布时间:2020-12-15 16:31:09 来源:亿速云 阅读:205 作者:Leah 栏目:开发技术

利用php怎么对url参数进行解析?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

代码如下所示:

<?php $url = 'http://www.baidu.com/index.php?m=content&c=index&a=lists&catid=6&area=0&author=0&h=0&region=0&s=1&page=1'; $arr = parse_url($url); var_dump($arr); $arr_query = convertUrlQuery($arr['query']); var_dump($arr_query); var_dump(getUrlQuery($arr_query)); /**  * 将字符串参数变为数组  * @param $query  * @return array array (size=10)           'm' => string 'content' (length=7)           'c' => string 'index' (length=5)           'a' => string 'lists' (length=5)           'catid' => string '6' (length=1)           'area' => string '0' (length=1)           'author' => string '0' (length=1)           'h' => string '0' (length=1)           'region' => string '0' (length=1)           's' => string '1' (length=1)           'page' => string '1' (length=1)  */ function convertUrlQuery($query) {   $queryParts = explode('&', $query);   $params = array();   foreach ($queryParts as $param) {     $item = explode('=', $param);     $params[$item[0]] = $item[1];   }   return $params; } /**  * 将参数变为字符串  * @param $array_query  * @return string string 'm=content&c=index&a=lists&catid=6&area=0&author=0&h=0&region=0&s=1&page=1' (length=73)  */ function getUrlQuery($array_query) {   $tmp = array();   foreach($array_query as $k=>$param)   {     $tmp[] = $k.'='.$param;   }   $params = implode('&',$tmp);   return $params; }

下面通过四种实例给大家介绍php url 参数获取方式。

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

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

相对较为原始的$_SERVER['QUERY_STRING']来获取,URL的参数,通常使用这个变量返回的会是类似这样的数据:name=tank&sex=1
如果需要包含文件名的话可以使用$_SERVER["REQUEST_URI"](返回类似:/index.php?name=tank&sex=1)

第二种、利用pathinfo内置函数

 代码如下:

<?php $test = pathinfo("http://localhost/index.php"); print_r($test); /*

结果如下

Array (    [dirname] => http://localhost //url的路径    [basename] => index.php //完整文件名    [extension] => php //文件名后缀    [filename] => index //文件名 ) */ ?>

第三种、利用parse_url内置函数

代码如下:

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

结果如下

Array (    [scheme] => http //使用什么协议    [host] => localhost //主机名    [path] => /index.php //路径    [query] => name=tank&sex=1 // 所传的参数    [fragment] => top //后面根的锚点 ) */ ?>

第四种、利用basename内置函数

代码如下:

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

结果如下

index.php?name=tank&sex=1#top */ ?>

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

代码如下:

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

结果如下

Array (   [0] => Array     (       [0] => name=tank       [1] => sex=1#top     )   [1] => Array      (       [0] => name=tank        [1] => sex=1      )    [2] => Array     (        [0] =>       [1] => #top     ) ) */ ?>

关于利用php怎么对url参数进行解析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI