我想将变量 ( foo=bar
) 传递给 URL。
如果 URL 已经有一个变量,那么foo
应该用&
和附加到当前 URL foo=bar
。
但是如果地址栏没有任何变量,那么当前 URL 应该附加?
和foo=bar
那么如何检查当前 URL 中是否存在任何变量?
我想将变量 ( foo=bar
) 传递给 URL。
如果 URL 已经有一个变量,那么foo
应该用&
和附加到当前 URL foo=bar
。
但是如果地址栏没有任何变量,那么当前 URL 应该附加?
和foo=bar
那么如何检查当前 URL 中是否存在任何变量?
在 URL 中传递的变量称为GET
参数。您可以使用$_GET
数组通过 PHP 检索它们。
给定网址 -http://mycoolsite.com?foo=bar&stack=overflow
做一个print_r()
on$_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
}
资源
正确的方法是:
$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 颠倒顺序 ;) 这是一个例子:
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
我想您想将 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();
它获取当前的 URL,检查它是否已经有一个?
。如果是,它会在var
& 堆栈上附加 a &
,否则附加 a?
并&
相应地附加。