PHP的預定義變量$_SERVER是一個包含頭部(headers),路徑信息及腳本位置的數組,數組的實體由web服務器創建.
利用$_SERVER數組,我們可以獲取URL完整路徑及真實路徑,讓自己隨心所欲的運用它們.
$_SERVER['SERVER_NAME'] // 當前運行腳本所在服務器主機的名稱.
$_SERVER[SERVER_PORT'] //用戶連接到服務器時所使用的端口.
$_SERVER['REQUEST_URI'] //當前運行腳本除主機名外的請求URL.
$_SERVER['DOCUMENT_ROOT'] //當前運行腳本所在的文檔根目錄.
舉例 URL : http://www.cndong.cn/Test/Test.php
$_SERVER['SERVER_NAME']: www.cndong.cn
$_SERVER['SERVER_PORT'] : 80www.2cto.com
$_SERVER['REQUEST_URI'] : /Test/Test.php
$_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
作者:徐修俊