PHP:$_SERVER 擷取當下網址的片段

2022/02/10 638 1 網站技術 , PHP

PHP 中有提供一個 $_SERVER 陣列,裏頭放置頭資訊(header)、路徑(path)、腳本位置(script locations)等有用的資訊,可以給開發者在需要的時候使用它們。這邊我要將這個陣列中可以作為擷取網址片段的資訊整理出來給大家參考:

$_SERVER['PHP_SELF'] // 現在 PHP 腳本的檔案名稱
$_SERVER['SERVER_NAME'] // 現在運行 PHP 腳本的伺服器網域名稱
$_SERVER['REQUEST_METHOD'] // 訪問此頁面的請求方法,如:GET、POST 等
$_SERVER['QUERY_STRING'] // 查詢字串,即 .php? 後的一大串內容
$_SERVER['HTTP_HOST'] // 現在 HOST 的頭部內容,這包含網域跟埠號
$_SERVER['SERVER_PORT'] // 伺服器正在使用的埠號
$_SERVER['REQUEST_URI'] // 訪問此頁面且不包含網域及埠號的網址

這邊舉一個例子大家應該會比較知道這個陣列的好用,如果您要利用 GET 傳輸值,但因為某些特定的原因需要分類跳轉至不同的頁面,在跳轉頁就能使用 $_SERVER['QUERY_STRING'] 這個資訊,將 GET 傳輸的值直接帶往下一個頁面,神奇吧?用法如下:

header("Location: next.php?" . $_SERVER['QUERY_STRING']);

PHP 程式碼

這邊的 $url 只是寫給自己看的沒真正用上喔!我只是用程式碼寫出一個 DEMO,實際上顯示的資訊還是要看你將這個腳本放在哪邊!不過我給的假設實作網址的輸出都已經附在註解中了!還請參考。

<?php
$url = "https://example.com:8888/SERVER.php?user=username&pages=1"; // 假設實作的網址
$output = "";

// 我把要用的 $_SERVER 陣列內資訊整理在這裡
$server_arr = array(
    $_SERVER['PHP_SELF'], // 輸出 /SERVER.php
    $_SERVER['SERVER_NAME'], // 輸出 example.com
    $_SERVER['REQUEST_METHOD'], // 輸出 GET
    $_SERVER['QUERY_STRING'], // 輸出 user=username&pages=1
    $_SERVER['HTTP_HOST'], // 輸出 example.com:8888
    $_SERVER['SERVER_PORT'], // 輸出 8888
    $_SERVER['REQUEST_URI'], // 輸出 /SERVER.php?user=username&pages=1
);

foreach ($server_arr as $value) {
    $output .= $value . "<br>";
}
?>

<p><?php echo $output ?></p>


▲ 精選圖片。

贊助廣告 ‧ Sponsor advertisements

留言區 / Comments

萌芽論壇