php uri参数,PHP处理替换URI query参数

本文介绍了在处理网页URL中query参数时的两种常见方法。首先通过`parse_url`获取query字符串,然后使用`parse_str`将字符串转换为数组,删除指定参数,再用`http_build_query`重建query。另一种方法是利用正则表达式直接替换目标参数。这两种方法在实际开发中均可用于动态修改URL的查询参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做网页翻页时总会遇到当前网址参数校验和处理问题,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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值