我想将变量 ( 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?并&相应地附加。