Keep on going, never give up.

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。

相关评论(0):  

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

最新文章

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载也必须遵循“署名-非商业用途-保持一致”的创作共用协议. 返回顶部
Copyright@2005-2016 Metsky.com, All rights Reserved.