我想將一個變量(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