首頁  >  文章  >  後端開發  >  PHP的$_SERVER的詳細介紹(程式碼範例)

PHP的$_SERVER的詳細介紹(程式碼範例)

不言
不言轉載
2019-01-09 10:07:464915瀏覽

這篇文章帶給大家的內容是關於PHP的$_SERVER的詳細介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助

$_SERVER 是PHP預先定義的超全域變數。所謂“超全域變數”,即在腳本全部作用域中都可以使用,$_SERVER儲存關於標頭、路徑和腳本位置的資訊。工作中常忘記,在此整理記錄下,加深印象。測試是在Windows下進行的,環境為Apache/2.4.23 (Win32) PHP/5.6.27-nts,訪問網域為http://www.example.com/index....,檔案目錄在E: /WWW/example/。

主要內容詳解

  • $_SERVER["SCRIPT_NAME"] => "/index.php",目前腳本路徑

  • $_SERVER["REQUEST_URI"] => "/index.php?id=1",存取的頁面URI,包含查詢字串

  • #$_SERVER["QUERY_STRING"] => "id=1",查詢字串,不存在為" "

  • $_SERVER["REQUEST_METHOD"] => "GET ",請求方法,如"POST"、"PUT"等

  • $_SERVER["SERVER_PROTOCOL"] => "HTTP/1.1",通訊協定的名稱和版本

  • $_SERVER["GATEWAY_INTERFACE"] => "CGI/1.1",伺服器使用的CGI 規範的版本

  • #$_SERVER["REMOTE_PORT "] => "60599",使用者連接伺服器使用的連接埠

  • #$_SERVER["SCRIPT_FILENAME"] => "E:/WWW/example/index.php",目前腳本的絕對路徑

  • $_SERVER["DOCUMENT_ROOT"] => "E:/WWW/example/",目前腳本文件根目錄的絕對路徑

  • $_SERVER["REMOTE_ADDR"] => "127.0.0.1",使用者的IP位址

  • $_SERVER["SERVER_PORT"] => " 80",伺服器使用的連接埠

  • $_SERVER["SERVER_ADDR"] => "127.0.0.1",伺服器的IP位址

  • #$_SERVER["SERVER_NAME"] => "www.example.com",伺服器的主機名,註:如果腳本運行於虛擬主機中,名稱是由該虛擬主機所設定的值決定。在 Apache 2 裡,必須設定 UseCanonicalName = On 和 ServerName。否則該值會由客戶端提供,就有可能被偽造。在上下文有安全性要求的環境裡,不應該依賴此值。

  • $_SERVER["SERVER_SOFTWARE"] => "Apache/2.4.23 (Win32) OpenSSL/1.0.2j mod_fcgid/2.3.9",回應頭中Server的內容

  • $_SERVER["SERVER_SIGNATURE"] =>  "",包含了伺服器版本和虛擬主機名稱的字串

  • # $_SERVER["HTTP_HOST"] => "www.example.com",請求頭中Host項目的內容

  • $_SERVER["HTTP_CONNECTION"] => "keep- alive",請求頭中Connection項目的內容

  • $_SERVER["HTTP_PRAGMA"] => "no-cache",請求頭中Pragma項目的內容

  • $_SERVER["HTTP_CACHE_CONTROL"] => "no-cache",請求頭中Cache-Control項目的內容

  • $_SERVER["HTTP_UPGRADE_INSECURE_REQUESTS" ] => "1",請求頭中Upgrade-Insecure-Requests項目的內容

  • $_SERVER["HTTP_USER_AGENT"] => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",請求頭中User-Agent項目的內容

  • $_SERVER["HTTP_ACCEPT" ] => "text/html,application/xhtml xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8",請求頭中Accept項的內容

  • $_SERVER["HTTP_ACCEPT_ENCODING"] => "gzip, deflate",請求頭中Accept-Encoding項目的內容

  • $ _SERVER["HTTP_ACCEPT_LANGUAGE"] => "zh-CN,zh;q=0.8",請求頭中Accept-Language項目的內容

  • #$_SERVER["PHP_SELF"] = > "/index.php",目前執行腳本的檔案名稱

  • $_SERVER["REQUEST_TIME_FLOAT"] => 1510112348.8084,請求開始的時間戳,微秒等級精確度

  • $_SERVER["REQUEST_TIME"] => 1510112348,請求開始的時間戳記

實例

#以上是測試中的$_SERVER 的主要內容,根據不同的環境配置,會有些變化。在實際工作中,$_SERVER有很多作用,這裡只舉兩個簡單實例,取得目前請求網址以及簡單防盜鏈。

<?php
// $_SERVER['HTTPS']当前是否为HTTPS协议
if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
    $url = 'https://';
} else {
    $url = 'http://';
}

if ($_SERVER['SERVER_PORT'] == 80) {
    $url .= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
} else {
    $url .= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['SERVER_PORT'];
}
<?php
// $_SERVER['HTTP_REFERER'],前一页面的url
if (!empty($_SERVER['HTTP_REFERER'])) {
    if (!strpos($_SERVER['HTTP_REFERER'], 'www.example.com')) {
        header('Location: http://www.example.com');
    }
}

以上是PHP的$_SERVER的詳細介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除
上一篇:什麼是Perl下一篇:什麼是Perl