PHP擷取當前頁面URL地址程式碼_PHP教程

來源:互聯網
上載者:User
在php中要擷取當前頁面url地址方法很簡單,下面我來給大家總結一下利用相關函數擷取完整頁面url地址的執行個體。

PHP的預定義變數$_SERVER是一個包含頭部(headers),路徑資訊及指令碼位置的數組,數組的實體由web伺服器建立.
利用$_SERVER數組,我們可以擷取URL完整路徑及真實路徑,讓自己隨心所欲的運用它們.
$_SERVER['SERVER_NAME'] // 當前運行指令碼所在伺服器主機的名稱.
$_SERVER[SERVER_PORT'] //使用者串連到伺服器時所使用的連接埠.
$_SERVER['REQUEST_URI'] //當前運行指令碼除主機名稱外的請求URL.
$_SERVER['DOCUMENT_ROOT'] //當前運行指令碼所在的主目錄.
舉例 URL : http://xsooo.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完整路徑為:

代碼如下 複製代碼

echo '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

在這裡我想總結一下取得地址欄內URL及檔案所屬的我更路徑的一些資訊:
運用$_SERVER[ ]我們可以來完成許多事情:它是一個包含頭部(headers),路徑資訊及指令碼位置的數組,數組的實體由web伺服器建立。

這是一個“superglobal”,或者可以描述為自動全域變數。這隻不過意味這它在所有的指令碼中都有效。在函數或方法中您不需要使用global $_SERVER; 訪問它,就如同使用 $HTTP_SERVER_VARS 一樣。
$HTTP_SERVER_VARS 包含著同樣的資訊,但是不是一個自動全域變數。(注意: $HTTP_SERVER_VARS 和 $_SERVER 是不同的變數,PHP 處理它們的方式不同。)如果設定了 register_globals 指令,這些變數也在所有指令碼中可用;也就是,分離了 $_SERVER 和 $HTTP_SERVER_VARS 數組。
 
$_SERVER['HTTP_HOST'] 取得當前請求的Host:頭部內容
$_SERVER['PHP_SELF']這可能是我們最為經常用到的了,它返回當前調用 的頁的檔案名稱,如果是http://localhost/test/2005/test.php, 那麼將會返回/test/2005/test.php
$_SERVER['SCRIPT_NAME']它將返回包含當前指令碼的路徑。這在頁面需要指向自己時非常有用
$_SERVER['SCRIPT_FILENAME']它將返回當前檔案所在的絕對路徑資訊
$_SERVER['REQUEST_URI']返回訪問此頁面所需的URI,包括"/"

當然還有許多重路徑函數:

dirname(),返迴路徑資訊中的目錄部分,前面是帶有"/"的
basename()返迴路徑中的基本的檔案名稱部分,當然也可以設定尾碼來控制輸出。
realpath(),返迴路徑資訊的絕對正常化的路徑

http://www.bkjia.com/PHPjc/632797.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632797.htmlTechArticle在php中要擷取當前頁面url地址方法很簡單,下面我來給大家總結一下利用相關函數擷取完整頁面url地址的執行個體。 PHP的預定義變數$_SERVER是一...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.