检查url是否包含参数 [英] Check if url contains parameters
问题描述
可能的重复:
分页时保留url参数
我想用php给当前url添加一个参数,但是我怎么知道url是否已经包含了一个参数?
I want to add a parameter to the current url with php, but how do I know if the url already contains a parameter?
示例:
foobar.com/foo/bar/index.php => foobar.com/foo/bar/index.php?myparameter=5foobar.com/index.php?foo=7 => foobar.com/index.php?foo=7&myparameter=5
foobar.com/foo/bar/index.php => foobar.com/foo/bar/index.php?myparameter=5 foobar.com/index.php?foo=7 => foobar.com/index.php?foo=7&myparameter=5
主要问题是我不知道是否需要添加?".
The main problem is that I don't know if I need to add a "?".
我的代码(在某处找到,但不起作用):
My code (found it somewhere, but it doesn't work):
<?php if(/?/.test(self.location.href)){ //if url contains ?
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]&myparameter=5";
} else {
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]?myparameter=5";
}?>
推荐答案
URL 参数是从名为 $_GET
的全局变量接收的,该变量实际上是一个数组.因此,要知道 URL 是否包含参数,您可以使用 isset()
函数.
The URL parameters are received from a global variable called $_GET
which is in fact an array. So, to know if a URL contains a parameter, you can use isset()
function.
if (isset($_GET['yourparametername'])) {
//The parameter you need is present
}
之后,您可以创建需要附加到 URL 的此类参数的单独数组.喜欢:
Afterwards, you can create separate array of such parameter you need to attach to a URL. Like:
if(isset($_GET['param1'])) {
\\The parameter you need is present
$attachList['param1'] = $_GET['param1'];
}
if(isset($_GET['param2'])) {
$attachList['param2'] = $_GET['param2];
}
现在,要知道是否需要 ?
符号,只需计算这个数组
Now, to know whether or not, you need a ?
symbol, just count this array
if(count($attachList)) {
$link .= "?";
// and so on
}
更新:
要知道是否设置了任何参数,只需计算 $_GET
To know if any parameter is set, just count the $_GET
if(count($_GET)) {
//some parameters are set
}
这篇关于检查url是否包含参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!