我想将变量(foo=bar
)传递给URL
如果网址已有变量,则foo
应附加到包含&
和foo=bar
的当前网址。
但是,如果地址栏没有任何变量,那么当前网址应附加?
和foo=bar
那么如何检查当前URL中是否存在任何变量?
答案 0 :(得分:0)
URL中传递的变量称为GET
参数。您可以使用$_GET
数组使用PHP检索它们。
给定网址 - http://mycoolsite.com?foo=bar&stack=overflow
在print_r()
上执行$_GET
会给你 -
Array (
[foo] => bar
[stack] => overflow
)
拥有此数组后,您可以使用in_array()
函数测试某个变量的存在。
if (in_array('foo',$_GET)){
// the foo variable is was passed
}
或者,您可以简单地遍历您传递的所有参数,然后以这种方式进行检查 -
foreach($_GET AS $key=>$value){
// $key = the name of the variable
// $value = the value of the variable
}
资源
答案 1 :(得分:0)
我想你想把var = foo和stack = overflow变量传递给当前的URL。换句话说,您希望将用户重定向到当前地址+新变量。你可以试试这个:
$url = 'http'.(empty($_SERVER['HTTPS'])?'':'s').'://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if(strpos("?", $url) !== FALSE){
$url .= "&var=foo&stack=overflow";
}else{
$url .= "?var=foo&stack=overflow";
}
header("Location: ".$url);
exit();
获取当前网址,检查其中是否已有?
。如果是,则附加var
&使用&
进行堆叠,否则使用?
和&
进行堆叠。
答案 2 :(得分:0)
正确的方法是:
$url = 'http'.(empty($_SERVER['HTTPS'])?'':'s').'://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if(strpos($url, "?") !== FALSE){
$url .= "&var=foo&stack=overflow";
}else{
$url .= "?var=foo&stack=overflow";
}
header("Location: ".$url);
exit();
strpos reverse order;) 这是一个例子:
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);