在 PHP 中獲取當前完整的 URL
-
在 PHP 中使用
http_build_url()
獲取當前的 Url -
在 PHP 中使用
$_SERVER[]
來獲取當前的 URL -
在 PHP 中使用
$_SERVER['HTTPS']
來獲取當前的 URL - 在 PHP 中獲取包括引數的當前 URL
- 結束語
本教程介紹瞭如何在 PHP 程式語言中獲取當前的完整 URL。獲取 PHP 的完整 URL 可以有很多用例。我們要根據查詢引數渲染出網頁的內容。我們可能需要重定向或重新整理整個頁面。因此,當涉及到網頁程式設計時,一個完整的 URL 可以是必不可少的價值。
在這裡,我們將討論在 PHP 程式設計中獲得完整 URL 的不同方法。
一般來說,有幾個步驟是我們必須知道的,以獲得當前正在執行的頁面的完整 URL,下面給出。
- 我們需要建立一個 PHP 變數,以字串格式儲存 URL。
- 我們需要檢查伺服器是否啟用了 HTTPS。如果啟用了,那麼我們需要在 URL 字串中附加
HTTPS
。如果沒有啟用 HTTPS,我們需要在 URL 字串中追加HTTP
。 - 我們還需要將
://
符號追加到 URL 中。 - 我們需要追加伺服器的 HTTP_HOST 名。HTTP_HOST 名就是我們所請求的主機,例如
www.google.com
、www.exampledomain.com
等。 - 我們需要在 URL 字串上追加 REQUEST_URI。REQUEST_URI 是我們請求的資源,例如
/index.php
等。
現在,我們討論一下 PHP 程式設計生態中最有效的獲取當前完整 URL 的方法。
在 PHP 中使用 http_build_url()
獲取當前的 Url
這個解決方案非常簡單。我們可以使用 PHP 內建函式,名為 http_build_url()
。這個方法對 HTTP 和 HTTPs 都有效。
$link = http_build_url();
這個函式用來建立一個 URL。它總共接受四個引數。
url
。這個引數以字串或關聯陣列的形式表示 URL。它的返回值類似於 parse_url()。parts
:這個引數和第一個引數一樣。該引數與第一個引數相同。flags
:這個引數與第一個引數相同。是二進位制 HTTP_URL 常量的位掩碼。new_url
。如果設定了這個引數,就會像parse_url()
返回的那樣,用組成的 URL 的部分來填充。
總的來說,這個方法在成功的時候會以字串的形式返回新的 URL,否則失敗的時候會返回 False
。
在 PHP 中使用 $_SERVER[]
來獲取當前的 URL
另一種方法是使用全域性變數 $_SERVER[]
。$_SERVER
是 PHP 的一個內建變數,用來獲取當前頁面的 URL。它也是一個超全域性變數。因此,它在所有範圍內都是可用的。
我們只需將引數 REQUEST_URI
傳遞給這個變數,如下例所示。
例子:
$link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$_SERVER[HTTP_HOST]
代表主機名或域名,如 https://www.delftstack.com/$_SERVER[REQUEST_URI]
代表 URI 如/dashboard/phpinfo.php
在 PHP 中使用 $_SERVER['HTTPS']
來獲取當前的 URL
這裡是另一種明確的硬程式碼格式,在 PHP 中獲取當前的 URL。
全域性變數 $_SERVER['HTTPS']
代表 HTTPS 的狀態。因此,我們可以在 isset()
函式中使用它來檢查 HTTPS 是否存在。這將幫助我們知道一個 URL 中是否啟用了 HTTPS。同時,通過檢查 $_SERVER['HTTPS']
的值,我們可以決定是否在 URL 中新增 “https”。
這兩個例子都顯示了 HTTPS 的檢測。下面的例子是長格式。
$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
或者你也可以使用下面例子中的短格式。
$link = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
在 PHP 中獲取包括引數的當前 URL
為了得到包括路徑、引數和查詢字串在內的整體 URL,我們可以使用 http_build_url()
,如下例所示。
$all_in_address_bar = http_build_url();
結束語
本教程演示了在 PHP 程式設計中獲取當前 URL 的一些最有效的方法。這些例子肯定會幫助你理解其中的格式、機制和語法。最常用的獲取當前 URL 的技術是使用超級全域性變數 $_SERVER
。使用這個,你可以完全控制語法格式。然而,這個技術與其他技術相比有點複雜。現在,你可以根據你的 PHP 程式設計方案來決定哪種獲取當前 URL 的方法最合適。在使用一個特定的方法時,可能會有不同的使用情況和效率。最好的選擇可能是嘗試每一種方法,然後選擇最靈活和最有效的方法來滿足你的程式設計方案。