Php 获取URL并从中删除id

Php 获取URL并从中删除id,php,url,Php,Url,我有一个这样的url url:- url.php?gender=male&&grand=brand1&&id=$id eg. $id may be 1, 100 ,23, 1000 any number 我正在使用 <?php echo $_SERVER['REQUEST_URI']; ?> 这将完成任务,在此函数中传递要删除的url和密钥 例如remove\u querystring\u var(“url.php?gender=male&&gra

我有一个这样的url

url:- url.php?gender=male&&grand=brand1&&id=$id
eg. $id may be 1, 100 ,23, 1000 any number
我正在使用

<?php echo $_SERVER['REQUEST_URI']; ?>
这将完成任务,在此函数中传递要删除的url和密钥

例如
remove\u querystring\u var(“url.php?gender=male&&grand=brand1&&id=$id”,“id”)
,它将从您的url中删除id

这将完成任务,在此函数中传递要删除的url和密钥


例如
remove\u querystring\u var(“url.php?gender=male&&grand=brand1&&id=$id”,“id”)
,它将从url中删除id

获取id位置,并使用子字符串删除id

$url = $_SERVER['REQUEST_URI'];
#Get id position and remove && by subtracting 2 from length
$pos = strrpos($url,'id') - 2;
$url = substr($url, 0, $Pos);
echo $url;

获取id位置并使用子字符串删除id

$url = $_SERVER['REQUEST_URI'];
#Get id position and remove && by subtracting 2 from length
$pos = strrpos($url,'id') - 2;
$url = substr($url, 0, $Pos);
echo $url;

您可以使用
$\u服务器['QUERY\u STRING']

此外,如果您的“id”值不总是在末尾,那么将substr设置为它将不是非常健壮的。相反,将其转换为关联数组并对其进行处理

例如,从
/url.php?gender=male&grand=brand1&id=999&something=else开始

parse_str($_SERVER['QUERY_STRING'], $parsed);
unset($parsed['id']);

// there may be a better way to do this bit.
$new_args = [];
foreach($parsed as $key=>$val){
    $new_args[] = "$key=$val";
}
$new_arg_str = join($new_args, '&');

$self = $_SERVER['PHP_SELF'];
$new_endpoint = "$self?$new_arg_str";
echo $new_endpoint;
结果:
/url.php?gender=male&grand=brand1&something=else

parse_str($_SERVER['QUERY_STRING'], $parsed);
unset($parsed['id']);

// there may be a better way to do this bit.
$new_args = [];
foreach($parsed as $key=>$val){
    $new_args[] = "$key=$val";
}
$new_arg_str = join($new_args, '&');

$self = $_SERVER['PHP_SELF'];
$new_endpoint = "$self?$new_arg_str";
echo $new_endpoint;
也比正则表达式更清晰

请记住,如果要重定向(使用
标题(“Location:where”)
或其他方式),则需要小心重定向循环。一个if语句可以避免这种情况

参考资料:


您可以使用
$\u服务器['QUERY\u STRING']

此外,如果您的“id”值不总是在末尾,那么将substr设置为它将不是非常健壮的。相反,将其转换为关联数组并对其进行处理

例如,从
/url.php?gender=male&grand=brand1&id=999&something=else开始

parse_str($_SERVER['QUERY_STRING'], $parsed);
unset($parsed['id']);

// there may be a better way to do this bit.
$new_args = [];
foreach($parsed as $key=>$val){
    $new_args[] = "$key=$val";
}
$new_arg_str = join($new_args, '&');

$self = $_SERVER['PHP_SELF'];
$new_endpoint = "$self?$new_arg_str";
echo $new_endpoint;
结果:
/url.php?gender=male&grand=brand1&something=else

parse_str($_SERVER['QUERY_STRING'], $parsed);
unset($parsed['id']);

// there may be a better way to do this bit.
$new_args = [];
foreach($parsed as $key=>$val){
    $new_args[] = "$key=$val";
}
$new_arg_str = join($new_args, '&');

$self = $_SERVER['PHP_SELF'];
$new_endpoint = "$self?$new_arg_str";
echo $new_endpoint;
也比正则表达式更清晰

请记住,如果要重定向(使用
标题(“Location:where”)
或其他方式),则需要小心重定向循环。一个if语句可以避免这种情况

参考资料: