如何从URL中删除选定的GET值

时间:2015-09-03 00:34:51

标签: php

我有这行代码:

echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']);

这将返回:

http://example.com?pageview=myview&edit=true&message=tester

我的问题是如何从message=tester删除echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']);

任何想法请...任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您只需要从字符串末尾删除已知子字符串,则可以使用rtrim()

来自PHP docs

  

rtrim - 从字符串末尾删除空格(或其他字符)

rtrim()接受2个参数,第二个参数是可选的。第一个是字符串,第二个字符串(如果存在)是要从字符串末尾删除的子字符串。

所以,在你的情况下:

echo rtrim(str_replace( '%7E', '~', $_SERVER['REQUEST_URI']),'message=tester');

这将返回:

http://example.com?pageview=myview&edit=true&

答案 1 :(得分:0)

这是删除任何GET参数的一般解决方案,将整个URL分解?然后获取参数并最近找到要删除的密钥

$url = explode("?",str_replace( '%7E', '~', $_SERVER['REQUEST_URI']));
$params = explode("&",$url[1]);
foreach ($params as $key=>$value) {
   if (strstr($value,"message=")===0) unset($params[$key]);
}
$url[1]=implode("&",$params);
echo implode("?",$url);

就是这样。如果您想要删除参数,如果它具有特定值,请执行以下操作:

if (strstr($value,"message=tester")===0) unset($params[$key]);