2013-02-06 77 views
1

我試圖讓URL路徑,並保存爲變量...獲取URL與如果聲明PHP

$setURL = true; 
$getDomain = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
$getSubdomain = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 

if ($setURL === true) { 
    $result = 'http://'.parse_url($getDomain, PHP_URL_HOST) . '/'; 
    echo 'get domain'; 
} else { 
    $result = 'http://'.parse_url($getSubdomain, PHP_URL_HOST).parse_url($getSubdomain, PHP_URL_PATH); 
    echo 'get subdomain'; 
} 

$siteURL = $result; 

如果我定義的變量$ setURL = true,所以基本上;它將返回正確的URL爲簡單的域... http://domain-name.com

但是別的,因爲我想不工作...否則是有子域。所以如果我設置$ setURL = false;它應該返回以下... http://domain-name.com/path/

但不幸的是它返回更多然後...它返回任何我輸入的URL ... http://domain-name.com/path/something/index.php它將返回所有這些作爲URL!

請幫我解決這個問題,因爲我沒有,我怎麼能管理,使之任何想法。

+0

究竟什麼是,如果檢查甚至? '$ setURL'永遠不會是假的。 – Amelia

+0

如果用戶定義它,$ setURL將爲false ... true/false它是用戶的選擇。 – user1658136

+1

@ user1658136不符合您的代碼。你明確地設置了'$ setURL = true;' – Kermit

回答

2

形式上,子域先於域名。例如,在ftp.debian.usFTP是子域。

這聽起來像你想要的是URI中的第一個路徑。您可以使用PHP的explode()方法來獲取路徑中的第一個段。

$uriparts = explode($_SERVER['REQUEST_URI']) // = '/path/to/somewhere/index.html' 
$path = $uriparts[1] // = 'path'