怎样用正则替换掉url某个参数?

BILLSJONE 2007-04-11 10:46:21
翻页的参数,
?id=1&page=2&page=3&page=4
每翻一次页page就增加一个,这样不行,如何把前面的page去掉只保留后面一个page=4?
...全文
828 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
malshow 2007-04-14
  • 打赏
  • 举报
回复
先把分页的函数贴上来看看吧
mfzhao 2007-04-12
  • 打赏
  • 举报
回复
<一> parse_url
<二> explode("&page",$_SERVER['QUERYSTRING']) 保留最后一个;
foolbirdflyfirst 2007-04-12
  • 打赏
  • 举报
回复
一般页数与 url后带的参数串是分开的
?id=1&page=2&page=3&page=4
这种情况,一般情况当前页querystring为
?page=$page&id=1
BILLSJONE 2007-04-12
  • 打赏
  • 举报
回复
lz 是不是用了$_SERVER['QUERYSTRING'];

其实不用去掉冗余参数 不影响
=======================
是不會影響功能,但不好看
li1229363 2007-04-12
  • 打赏
  • 举报
回复
楼主的程序本身就是一个错误的程序

为什么别人的不会有这样的情况呢?说明楼主的程序有问题。

直接输出你的url吧,用什么正则,太浪费系统资源了
mivec 2007-04-12
  • 打赏
  • 举报
回复
lz 是不是用了$_SERVER['QUERYSTRING'];

其实不用去掉冗余参数 不影响
iasky 2007-04-12
  • 打赏
  • 举报
回复
parse_url
z109876543210 2007-04-11
  • 打赏
  • 举报
回复
if(strpos($url_query, "page=") === false){
if(strlen($url_query))$url_query .= "&";
$url_query .= "page=".$page;
}else{
$url_query = preg_replace("/page=(\d+)/sm", "page=".$page, $url_query);
}
BILLSJONE 2007-04-11
  • 打赏
  • 举报
回复
我用数组修改它可以了,
if(strpos($url_query,"page")>0 && strpos($url_query,"&")>0){
$url_query=explode("&",$url_query);
unset($url_query[count($url_query)-1]);
$url_query=implode("&",$url_query);
}

BILLSJONE 2007-04-11
  • 打赏
  • 举报
回复
这个参数就是在翻页函数里面修改的啊,我在这里找的一个翻页函数,其中有修改page参数的:
=================
//因为URL中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。
//这里用到了正则表达式,请参考“PHP中的正规表达式”(http://www.pconline.com.cn/pcedu/empolder/wz/php/10111/15058.html)
$url_query=ereg_replace("(^|&)page=$page","",$url_query);
=================
$url_query是得到所有url参数信息,
但他这个在只有一个page参数没有别的参数的时候(**.php?page=2)可以替换掉,
有别的参数的时候,一翻页这个page就一直增加。
wasuka 2007-04-11
  • 打赏
  • 举报
回复
你的出发点就错了。不应该想怎么修正URL,而应该想怎么完善翻页函数

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧