2012-07-01 125 views
0

我想在php腳本中獲得完整的URL地址,請告訴,這段代碼總是給出正確的URL? 或者在某些情況下,這段代碼給了我們錯誤的URL?獲取完整的URL地址

if (empty($_SERVER['HTTPS'])) { 
$s = ""; 
} 
else { 
$s = "s"; 
} 
$url = "http".$s."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
+0

你試過了嗎?如果是,結果如何? –

+0

這將返回URL當前頁面,但我不知道,它的作品總是糾正不是。 –

回答

0

您忘記了端口號。這是接收當前頁面URL的全功能代碼。

function selfURL() { 
    $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; 
    $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; 
    $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); 
    return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI']; 
} 
+0

非常感謝,但這不是錯誤? $ s =空($ _ SERVER [「HTTPS」])? '':($ _SERVER [「HTTPS」] ==「on」)? 「s」:「」; –

+0

的含義是明白的,只有在三元運算符錯誤:)謝謝。 –

+0

對於語法錯誤感到抱歉。將其分組爲括號 – ssbb

0

我認爲應該罰款假設你使用標準的80端口,否則你可能要包括這一點。

$uri = 'http'. ($_SERVER['HTTPS'] ? 's' : null) .'://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 
+0

非常感謝 –

+0

欣賞您的評論,但如果您發現有用的答案,請點擊'這個答案在左邊是有用的計數器'。如果某個答案解決了您的問題,請將其標記爲答案,這有助於其他用戶找出答案的工作原理。 它也提高了您的接受評級,這意味着更多的用戶將來可能會對您有所幫助。 – Usman

+0

是的,但我只是11聲望,對於使用按鈕「這個答案很有用」,需要15分的聲望。在此,我無法更改答案級別。 –