我有这行代码:
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']);
?
任何想法请...任何帮助将不胜感激。
答案 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]);