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

  介绍

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

代码如下所示:

& lt; php ?=$ url  & # 39; http://www.baidu.com/index.php?m=content& c=index&一个=lists& catid=6,面积=0,作者=0,h=0,地区=0,s=1,页面=1 & # 39;;   $ arr =, parse_url ($ url);   美元var_dump (arr);   $ arr_query =, convertUrlQuery (arr美元[& # 39;查询# 39;]);   arr_query美元var_dump ();   var_dump (getUrlQuery (arr_query美元));/* *   ,*将字符串参数变为数组   ,* @param 查询美元   ,* @return  array  array (大?10)   ,,,,,,,,,& # 39;猴# 39;,=祝辞,string  & # 39;内容# 39;,(长度=7)   ,,,,,,,,,& # 39;c # 39;,=祝辞,string  & # 39;指数# 39;,(长度=5)   ,,,,,,,,,& # 39;一个# 39;,=祝辞,string  & # 39;列出了# 39;,(长度=5)   ,,,,,,,,,& # 39;catid& # 39;,=祝辞,string  & # 39; 6 & # 39;,(长度=1)   ,,,,,,,,,& # 39;区域# 39;,=祝辞,string  & # 39; 0 & # 39;,(长度=1)   ,,,,,,,,,& # 39;作者# 39;,=祝辞,string  & # 39; 0 & # 39;,(长度=1)   ,,,,,,,,,& # 39;h # 39;,=祝辞,string  & # 39; 0 & # 39;,(长度=1)   ,,,,,,,,,& # 39;地区# 39;,=祝辞,string  & # 39; 0 & # 39;,(长度=1)   ,,,,,,,,,& # 39;& # 39;,=祝辞,string  & # 39; 1 & # 39;,(长度=1)   ,,,,,,,,,& # 39;页面# 39;,=祝辞,string  & # 39; 1 & # 39;,(长度=1)   ,*/function  convertUrlQuery(查询)   {   时间=美元才能queryParts 爆炸(& # 39;,& # 39;,,查询美元);   时间=美元才能params 数组();   foreach 才能;(queryParts 美元;as  param美元),{   ,,,item 美元;=,爆炸(& # 39;=& # 39;,,param美元);   ,,,美元params [$ item [0]],=, $ item [1];   ,,}   美元return 才能;参数;   }/* *   ,*将参数变为字符串   ,* @param  array_query美元   ,* @return  string  string  & # 39; m=content& c=index&一个=lists& catid=6,面积=0,作者=0,h=0,地区=0,s=1,页面=1 & # 39;,(长度=73)   ,*/function  getUrlQuery (array_query美元)   {   时间=美元才能tmp 数组();   foreach才能(array_query 美元;as  $ k=祝辞param美元)   {才能   ,,,tmp[],美元=,$ k强生# 39;=& # 39;美元参数;   ,,}   时间=美元才能params 内爆(& # 39;,& # 39;,tmp美元);   美元return 才能;参数;   }

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

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

<强>第一种,利用$ _SERVER内置数组变量

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

<强>第二种,利用pathinfo内置函数

,代码如下:

& lt; php ?   $ test =, pathinfo (“http://localhost/index.php");   print_r($测试);/*

结果如下

数组   (   (目录名),,,=祝辞,http://localhost //url的路径   [:],,,=祝辞,index.php //完整文件名   (扩展),,,=祝辞,php //文件名后缀   (文件名),,,=祝辞,index //文件名   )   */?在

<强>第三种,利用parse_url内置函数

代码如下:

& lt; php ?   $ test =, parse_url (“http://localhost/index.php?name=tank&性=1 # top");   print_r($测试);/*

结果如下

数组   (   (计划),,,=祝辞,http //使用什么协议   ,,(主持人),=祝辞,localhost //主机名   (路径),,,=祝辞,/index.php //路径   ,,[查询],=祝辞,名字=tank&性=1,//,所传的参数   (片段),,,=祝辞,top //后面根的锚点   )   */?在

<强>第四种,利用basename内置函数

代码如下:

& lt; php ?   $ test =,:“http://localhost/index.php?name=tank&性=1 # top");   美元echo 测试;/*

结果如下

index . php ?名字=tank&性=1 #   */?在

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

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