2010-09-11 16 views
2

聲明說我的URL地址是www.example.comPHP如果有關的URL地址

我想有一個if語句在我的腳本,使得測試條件爲真如果URL www.example。如果它是其他的東西,例如com和false www.example.com/test或www.example.com?var=3 &函數= 7。

我該如何做到這一點?它會增加網頁加載的開銷嗎?因爲我將在網站的首頁上有這個if語句。

謝謝

回答

6

它會增加一個微不足道的加載時間,因爲它只是解析一些頭信息。

$_SERVER['HTTP_HOST'] // The host (e.g. www.example.com) 
$_SERVER['REQUEST_URI'] // The URI (e.g. /something.php or /something.php?this=true) 

而實現:

if ($_SERVER['HTTP_HOST'] != "www.domain.com") // Do something 
+2

即使他沒有請求,信息也會被解析。所以沒有任何開銷(當然,除了評估if語句)。 – halfdan 2010-09-11 23:40:48

+0

這是正確的,我想總是訪問陣列..但是,是的,幾乎沒有可測量的差異 – 2010-09-11 23:42:14

1

測試,看看是否有任何額外的參數,可以這樣做:

if(count($_GET) > 0) { /* parameters exist */ } 

然而,以測試瀏覽器指向/example,你將不得不使用一些URL重寫,因爲它不指向你的PHP文件。

0

如果你對mod_rewrite的:

if($_SERVER['SCRIPT_URI'] == 'http://www.example.com' && !$_SERVER['QUERY_STRING']) 

應該有對性能沒有顯着的影響。

+0

應該是'$ _SERVER ['REQUEST_URI']'它將是'/ index.php'或你有什麼。它不包含主機和URL方案。 – prodigitalson 2010-09-11 23:46:53

+0

@prodigitalson'script_uri'可用於mod_rewrite。 – waiwai933 2010-09-11 23:53:54