网站地图    收藏   

主页 > 后端 > PHP语言 >

PHP处理替换URI query参数_自学php网

来源:自学PHP网    时间:2014-12-04 21:50 作者: 阅读:

[导读] 在做网页翻页时总会遇到当前网址参数校验和处理问题,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网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论