2014-06-26 33 views
0

我想獲得的參數中的一個關鍵,例如http://link.com/?parameterPHP:如何得到鑰匙URL參數

我讀的地方,關鍵是NULL和值將是parameter。我試過$_GET[NULL],但它似乎沒有工作。

這裏是我的代碼:

​​

它只是打印出..這樣就意味着我不這樣做是正確的。有人能告訴我正確的方法嗎?

+0

試着像得到與?開頭的URL的一部分'如果($ _ GET ['parameter'] == NULL)' – Bora

+0

$ _GET superglobal是一個數組。當你做一些類似mypage.php?參數的事情時,你正在爲它添加一個鍵而不分配一個值。你將有$ _GET = array(「parameter」=>「」)。那就是PHP 101 – thedethfox

+0

討論之前回答我可以用空鍵創建一個數組...... – itzmukeshy7

回答

3

在PHP中沒有無關鍵URL參數。 ?parameter等於$_GET['parameter']被設置爲空字符串。

試着做var_dump($_GET)與像http://link.com/?parameter網址,看看你得到什麼。

它應該是這個樣子:

array (size=1) 'parameter' => string '' (length=0)

因此,你可以在一對夫婦的方式測試它取決於你的應用需求:

if (isset($_GET['parameter'])) { 
    // do something 
} else { 
    // do something else 
} 

// Only recommended if you're 100% sure that 'parameter' will always be in the URL. 
// Otherwise this will throw an undefined index error. isset() is a more reliable test. 

if ($_GET['parameter'] === '') { 
    // do something 
} else { 
    // do something else 
} 
0

$_GET是超級全局assoc數組,其中包含parameter =>it's value對。所以,parameter是數組的關鍵。

例如,如果您的網址是這樣的:myweb.com/?page=load&do=magic比你$_GET是:

$_GET(
    [page] => load 
    [do] => magic 
) 

如果你想只是爲了測試,如果parameter是在你的網址爲PARAM,你應該這樣做這個:

if (isset($_GET['parameter']) 
    echo "Here I am!"; 
0

你也可以像這樣得到整個request_url

echo $_SERVER['REQUEST_URI']; 

?後得到部分:

echo explode('?', $_SERVER['REQUEST_URI'])[1]; 
+0

很糟糕的解決方案。如果他想要添加另一個參數來請求呢? – ovnia

+0

@wingsofovnia,只是提供了一個不同的方式來做到這一點。在某些情況下可能會派上用場:) – Fabricator

0

你可以通過array_keys()

$param = array_keys($_GET)[0]; 

這將使你的第一個查詢參數的名稱,它是否有一個值或不。

你也可以得到所有的參數沒有值,像這樣:

$empty = []; 
foreach($_GET as $key => $value) 
    if(strlen($value) === 0) $empty[] = $key; 

print_r($empty); 
0

您可以

$_SERVER['QUERY_STRING']