我想将一个变量(foo=bar
)传递给URL。
如果URL已经有一个变量,那么foo
应附加到当前的URL &
和foo=bar
。
但是,如果地址栏不具有任何变量,那么当前的网址应该以?
和foo=bar
如何检查是否有任何变量通过URL传递?
被追加所以,我怎么可以检查任何变量是否存在于当前URL或不?
我想将一个变量(foo=bar
)传递给URL。
如果URL已经有一个变量,那么foo
应附加到当前的URL &
和foo=bar
。
但是,如果地址栏不具有任何变量,那么当前的网址应该以?
和foo=bar
如何检查是否有任何变量通过URL传递?
被追加所以,我怎么可以检查任何变量是否存在于当前URL或不?
在URL中传递的变量称为GET
参数。您可以使用$_GET
阵列通过PHP检索它们。
给出的URL - 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
}
资源
我想你想要将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
&堆栈附加到&
,否则相应地?
和&
。
我喜欢你选择的变量;) – Lix 2012-07-29 11:46:49
正确的方法是:
$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);
你可以列出你的问题,也许提供了你在做什么的例子,什么是失败?现在很难理解。 – DCoder 2012-07-29 10:49:26