2009-12-09 116 views

回答

25

請參閱PHP Get Current URL

有時就沒有那麼簡單 因爲人們可能會想到來獲得當前 URL中使用它您的應用程序中。 這是我用來取 當前URL並在 腳本中使用它的片段。當前網址(無論是http 還是https)現在是一個局部變量,您可以隨意使用 。

$url = "http".(!empty($_SERVER['HTTPS'])?"s":""). 
"://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 

注:使用任何敏感,就像一個SQL查詢之前,您應該新郎此值。

+0

服務器的端口,如果你使用重寫後的附加參數,獲取完整的URL缺少.. – b3wii 2017-02-24 11:24:48

+0

腳本,就像/x.php/123/456那麼使用REQUEST_URI將包含這些參數。 SCRIPT_NAME可能會更好。 – 2017-09-15 11:20:22

2

如果您需要像這樣的信息,通常可以方便地查看phpinfo()的輸出,然後閱讀那些看起來不錯的項目的文檔。

請記住,有些人可能是你的服務器上是正確的,但對別人略有不同..取決於操作系統,HTTP服務器等

0

假設你在訪問

How do I get the current URL of my script using PHP?

然後 echo $ _SERVER ['SERVER_NAME']; //這將返回ü是主機名: -

stackoverflow.com/

回聲$ _ SERVER [ 'REQUEST_URI']; //它只返回當前網址的文件名 將返回

「/ questions/1871770/how-do-i-get-the-current-url-of-my-script-using-php」

而不是主機名。

+0

請勿使用* PHP_SELF *。 – Gumbo 2009-12-09 09:30:08

+0

是的... PHP_SELF只會返回文件...而不是其他參數..如果需要完整路徑,那麼他必須使用「REQUEST_URI」,並且我編輯了我的答案。 – ravindrakhokharia 2009-12-11 04:26:40

+1

更不用說PHP_SELF容易受到XSS的影響。 – 2009-12-11 04:35:07

3

如果你想知道你的服務器上的腳本的名稱,然後..

$file = $_SERVER["SCRIPT_NAME"]; 
echo $file; 

$ _ SERVER [「SCRIPT_NAME」]會給你當前執行的腳本路徑,您的服務器不相關在瀏覽器的網址上。

3

對於www.example.com/files/script.php

$_SERVER['SCRIPT_NAME'] = /文件/腳本。PHP

,如果你想在當前目錄網址:

dirname($_SERVER['SCRIPT_NAME']) = /文件

0

你好,這是你的問題的解決

//這個抓取頁面網址

$url=$_SERVER['REQUEST_URI']; 
echo "$url<br />"; 

//它瓦特生病打印

//這個

$host=$_SERVER['HTTP_HOST']; 
echo "$host<br />"; 

獲取主機//你可以通過這個

$fullurl="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
echo $fullurl;