2011-01-19 48 views
21

$_SERVER['REQUEST_URI']$_GET['q'](用在Drupal中)有什麼區別?

+23

嗯..他們是兩個完全不同的東西?我認爲你需要添加一些內容 –

回答

106

鑑於這種例子網址:

http://www.example.com/some-dir/yourpage.php?q=bogus&n=10

$_SERVER['REQUEST_URI']會給你:

/some-dir/yourpage.php?q=bogus&n=10

$_GET['q']會給你:

bogus

換句話說,$_SERVER['REQUEST_URI']將包含完整的請求路徑,包括querystring。而$_GET['q']會給你查詢字符串中的參數q的值。

9

在Drupal的背景下,差異將取決於是否乾淨的網址是否打開。

有了他們,$_SERVER['REQUEST_URI']將有頁面的完整路徑,如所謂的W//index.php,而$_GET["q"]只會有什麼被分配到q

與他們在一起,他們將幾乎相同W/O其他參數,但$_GET["q"]將缺少領先/。看看默認.htaccess的結尾,看看發生了什麼。如果將其他參數傳遞到頁面中,例如當傳呼機處於活動狀態時,它們也會有所不同。

+3

這是解決問題的最初原因(URL重寫)的唯一答案;而不是僅僅給出相當明顯的php超全球變量定義。不要誤解我的意思,其他答案本身是非常正確的,但是這個答案提供了一些背景知識,並且應該有更多的讚揚! – Levit

相關問題