好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP处理替换URI query参数

在做网页翻页时总会遇到当前网址参数校验和处理问题,URI query参数处理方法有很多种,字符串替换、数组处理等等,而且实现方法也不一,本文总结两种方法,如各位有更精简的方法欢迎留言讨论。典型的带query地址如下:

//test.php?page=123 //test.php?page=123&a=4 //test.php?a=4&page=123&b=1 //test.php?a=4&b=1&page=123

下文实例替换其中的page=123这个参数。

一、读取并分解query $url=$_SERVER["REQUEST_URI"];//request url address $purl=parse_url($url); $oldq=$purl['query'];//same as $_SERVER["QUERY_STRING"]

这里的$oldq即是全部query序列,比如上文的"a=4&page=123&b=1"。

二、替换query参数

如下方法任选其一,均已测试验证。

1、用parse_str函数 $arrTmp=array(); parse_str($oldq,$arrTmp); //To array unset($arrTmp['page']); $newq = http_build_query($arrTmp);//build again $newUrl=str_replace($oldq,$newq,$url);//same as $_SERVER['SCRIPT_NAME'].'?'.$newq; 2、使用preg_replace

使用preg_replace替换page参数,page后面总是跟数字,所以很好区分。

$newq=preg_replace("/^page=\d+($|&)/","",$oldq); $newq=preg_replace("/&page=\d+/","",$newq); $newUrl=str_replace($oldq,$newq,$url);

其中,$oldq就是上文的query字符串,如果替换后不打算再添加query参数,也可直接使用上文的$url。

查看更多关于PHP处理替换URI query参数的详细内容...

  阅读:48次