TOP

超實用!PHP 的 $_SERVER詳解
2019-12-20 11:40:29   字體:【 】  瀏覽:392次   評論:0

$_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有很多作用,這里只舉兩個簡單實例,獲取當前請求URL以及簡單防盜鏈

<?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');
    }
}


Tags:實用 PHP _SERVER 詳解 責任編輯:紹00
】【打印繁體】【投稿】【收藏】 【推薦】【舉報】【評論】 【關閉】 【返回頂部
上一篇php168 全站地圖 webmap.php 下一篇file_get_content s()獲取https出..

  • 系統環境:Windows Server 2008 R2 + Sql Server 2008 R2 問題描述:Windows Server 2008 R2系統內存占用率過大,而在任務管理器中各進程內存占用總和都遠不到此占用率。相關現象:1. 內存占用率90%以上2. 任務管理器中所有進程內存和較低,遠不到90%,有二十多G的內存偏差 分析過程: 首先懷疑SQL&..

  • ALTER TABLE zysjyj DROP aid;ALTER TABLE zysjyj ADD aid int(10) NOT NULL FIRST;ALTER TABLE zysjyj AUTO_INCREMENT=10000;ALTER TABLE zysjyj MODIFY COLUMN aid int(10) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(aid);

  • 前言最近在進行apache性能優化設置。在修改apache配置)文件之前需要備份原有的配置文件夾conf,這是網站架設的好習慣。以下的apache配置調優均是在red had的環境下進行的。httpd 相關查看命令了解查看當前安裝模塊mpm(多路處理器)[root@localhost ~]# httpd -l查看httpd進程數(即各個mpm模式下Apache能夠處理的并發請求數)[root@localhost ~]# p..

  • 說明在我的五旬節期間,我注意到您可以通過java script,如果您的站點易受XSS影響,并且您正在使用Apache HTTP服務器。這是可能的,因為apachehttp服務器發送一個“http400壞消息”請求“如果HTTP頭值太長(超過服務器限制)。在本例中,apache還包括頭名稱和頭值在400錯誤頁上。所以通過XSS可以設置一組大的cookies,激發XHR請求并讀取響應,還包含僅HttpCookies據我所知,..

  • 一些常見的狀態碼為:200 - 服務器成功返回網頁 404 - 請求的網頁不存在 503 - 服務不可用 詳細分解:1xx(臨時響應) 表示臨時響應并需要請求者繼續執行操作的狀態代碼。代碼 說明 100 (繼續) 請求者應當繼續提出請求。服務器返回此代碼表示已收到請求的第一部分,正在等待其余部分。 101 (切換..

  • 首先簡單介紹一下,.htaccess文件是Apache服務器中的一個配置文件(Nginx服務器沒有),它負責相關目錄下的網頁配置。通過對.htaccess文件進行設置,可以幫我們實現:網頁301重定向、自定義400/403/404/500錯誤頁面、改變文件擴展名、允許/阻止指定IP用戶訪問、禁止目錄列表、配置默認文檔等功能,可以說是功能非常強大,下面就給大家介紹一下最常用的幾個功能的設置方法。設置網站錯..

-->

發布者

紹00 紹00
等級:普通會員
積分:0 個
性別:保密
shao00@qq.com
64 身份還未認證 郵箱還未認證 手機還未認證 給它發送短消息 搜尋它在php發布的全部文章 63

最新文章

網站服務地區

中西區網站建設
紹興市網站建設
普陀區網站建設
烏魯木齊市網站建設
哈爾濱市網站建設
萊蕪市網站建設
鷹潭市網站建設
惠州市網站建設
撫州市網站建設
云林縣網站建設
金昌市網站建設
璧山縣網站建設
山南地區網站建設
日喀則地區網站建設
瀘州市網站建設
昌都地區網站建設
隴南市網站建設
張家界市網站建設
松江區網站建設
拉薩市網站建設
黃大仙區網站建設
白沙黎族自治縣網站建設

本月熱門

相關文章

120期波叔一波中特图