PHP的預約義變量$_SERVER是一個包含頭部(headers),路徑信息及腳本位置的數組,數組的實體由web服務器建立.php
利用$_SERVER數組,咱們能夠獲取URL完整路徑及真實路徑,讓本身爲所欲爲的運用它們.web
$_SERVER['SERVER_NAME'] // 當前運行腳本所在服務器主機的名稱.apache
$_SERVER[SERVER_PORT'] //用戶鏈接到服務器時所使用的端口.數組
$_SERVER['REQUEST_URI'] //當前運行腳本除主機名外的請求URL.服務器
$_SERVER['DOCUMENT_ROOT'] //當前運行腳本所在的文檔根目錄.spa
舉例 URL : http://www.cndong.cn/Test/Test.phpip
$_SERVER['SERVER_NAME']: www.cndong.cn文檔
$_SERVER['SERVER_PORT'] : 80web服務器
$_SERVER['REQUEST_URI'] : /Test/Test.phpit
$_SERVER['DOCUMENT_ROOT'] : /home/var/www/cndong.cn/htdocs
因此URL完整路徑爲: 「http://」.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']
說明 :
1. 默認http的端口爲80 ,因此通常$_SERVER['SERVER_PORT']不歸入URL完整路徑,固然特殊狀況,特殊對待!
2. 有人會用$_SERVER['REMOTE_HOST']獲取主機名,但是它的含義是:正在瀏覽當前頁面用戶的主機名(此變量必須由Web 服務器來建立).
延伸:
$_SERVER['REMOTE_HOST']爲空值的解決方法 修改apache服務器配置文件httpd.conf內的HostnameLookups爲On