在php中要獲取當(dāng)前頁(yè)面url地址方法很簡(jiǎn)單,下面我來(lái)給大家總結(jié)一下利用相關(guān)函數(shù)獲取完整頁(yè)面url地址的實(shí)例.
PHP的預(yù)定義變量$_SERVER是一個(gè)包含頭部(headers),路徑信息及腳本位置的數(shù)組,數(shù)組的實(shí)體由web服務(wù)器創(chuàng)建.
利用$_SERVER數(shù)組,我們可以獲取URL完整路徑及真實(shí)路徑,讓自己隨心所欲的運(yùn)用它們.
$_SERVER['SERVER_NAME'] // 當(dāng)前運(yùn)行腳本所在服務(wù)器主機(jī)的名稱.
$_SERVER[SERVER_PORT'] //用戶連接到服務(wù)器時(shí)所使用的端口.
$_SERVER['REQUEST_URI'] //當(dāng)前運(yùn)行腳本除主機(jī)名外的請(qǐng)求URL.
$_SERVER['DOCUMENT_ROOT'] //當(dāng)前運(yùn)行腳本所在的文檔根目錄.
舉例 URL : http://Vevb.com/Test/Test.php
$_SERVER['SERVER_NAME']: xsooo.com
$_SERVER['SERVER_PORT'] : 80
$_SERVER['REQUEST_URI'] : /Test/Test.php
$_SERVER['DOCUMENT_ROOT'] : /home/var/www/xsooo.com/htdocs
所以URL完整路徑為如下代碼:
- <?php
- echo 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
- ?>
說(shuō)明:
1.默認(rèn)http的端口為80 ,所以一般$_SERVER['SERVER_PORT']不納入U(xiǎn)RL完整路徑,當(dāng)然特殊情況,特殊對(duì)待!
2.有人會(huì)用$_SERVER['REMOTE_HOST']獲取主機(jī)名,可是它的含義是:正在瀏覽當(dāng)前頁(yè)面用戶的主機(jī)名(此變量必須由Web 服務(wù)器來(lái)創(chuàng)建).
延伸:
$_SERVER['REMOTE_HOST']為空值的解決方法
修改apache服務(wù)器配置文件httpd.conf內(nèi)的HostnameLookups為On
在這里我想總結(jié)一下取得地址欄內(nèi)URL及文件所屬的我更路徑的一些信息:
運(yùn)用$_SERVER[ ]我們可以來(lái)完成許多事情:它是一個(gè)包含頭部(headers),路徑信息及腳本位置的數(shù)組,數(shù)組的實(shí)體由web服務(wù)器創(chuàng)建。
這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。這只不過(guò)意味這它在所有的腳本中都有效。在函數(shù)或方法中您不需要使用global $_SERVER; 訪問(wèn)它,就如同使用 $HTTP_SERVER_VARS 一樣。
$HTTP_SERVER_VARS 包含著同樣的信息,但是不是一個(gè)自動(dòng)全局變量。(注意: $HTTP_SERVER_VARS 和 $_SERVER 是不同的變量,PHP 處理它們的方式不同。)如果設(shè)置了 register_globals 指令,這些變量也在所有腳本中可用;也就是,分離了 $_SERVER 和 $HTTP_SERVER_VARS 數(shù)組。
$_SERVER['HTTP_HOST'] 取得當(dāng)前請(qǐng)求的Host:頭部?jī)?nèi)容
$_SERVER['PHP_SELF']這可能是我們最為經(jīng)常用到的了,它返回當(dāng)前調(diào)用 的頁(yè)的文件名,如果是http://localhost/test/2005/test.php, 那么將會(huì)返回/test/2005/test.php
$_SERVER['SCRIPT_NAME']它將返回包含當(dāng)前腳本的路徑。這在頁(yè)面需要指向自己時(shí)非常有用
$_SERVER['SCRIPT_FILENAME']它將返回當(dāng)前文件所在的絕對(duì)路徑信息
$_SERVER['REQUEST_URI']返回訪問(wèn)此頁(yè)面所需的URI,包括"/"
當(dāng)然還有許多路徑函數(shù):
dirname(),返回路徑信息中的目錄部分,前面是帶有"/"的
basename()返回路徑中的基本的文件名部分,當(dāng)然也可以設(shè)置后綴來(lái)控制輸出。
realpath(),返回路徑信息的絕對(duì)規(guī)范化的路徑
新聞熱點(diǎn)
疑難解答