php dirname(__FILE__) 獲取當前文件的絕對路徑

dirname(__FILE__) 取到的是當前文件的絕對路徑,也就是說,比起相對路徑,查找速度是最快的。php

PHP 常量 dirname(__file__)
__FILE__ :被稱爲PHP魔術常量 ,返回當前執行PHP腳本的完整路徑和文件名,包含一個絕對路徑web

1)dirname(__FILE__) 函數返回的是腳本所在在的路徑。app

好比文件 b.php 包含以下內容:函數

<?php 
$basedir = dirname(__FILE__); 
echo $basedir
//將在頁面打印出一個這個文件所在絕對路徑! 
?> 

我作的測試獲得結果: E:/website/othertest/cms
這個至關於, asp中的server.mappth的用法
若是b.php被其餘目錄裏的a.php文件require 或者 include 去引用的話。 變量$basedir 的內容仍是b.php所在的那個文件夾的路徑。 而不是變成a.php文件所在的目錄。測試

2)dirname(__FILE__) 通常會返回文件所的當前目錄到系統根目錄的一個目錄結構。ui

不會返回當前的文件名稱。 dirname(__FILE__) 也可能返回一個 . (當前目錄) [緣由是 b.php 文件在 http.conf 或者 PHP 配置開發環境的默認WEB目錄下

幾個 PHP 的「魔術常量」spa

名稱 說明 
__LINE__ 文件中的當前行號。 
__FILE__ 文件的完整路徑和文件名。若是用在包含文件中,則返回包含文件名。自 PHP 4.0.2 起,__FILE__ 老是包含一個絕對路徑,而在此以前的版本有時會包含一個相對路徑。 
__FUNCTION__ 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值老是小寫字母的。 
__CLASS__ 類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值老是小寫字母的。 
__METHOD__ 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫好比當前文件是放在(d:\www\)下,文件名是test.php。 
測試的代碼以下:code

<?php 
echo __FILE__ ; // 取得當前文件的絕對地址,結果:D:\www\test.php 
echo dirname(__FILE__); // 取得當前文件所在的絕對目錄,結果:D:\www\ 
echo dirname(dirname(__FILE__)); //取得當前文件的上一層目錄名,結果:D:\ 
?> 

使用方法提示, 
dirname(__FILE__) 取到的是當前文件的絕對路徑,也就是說,比起相對路徑,查找速度是最快的。 
若是重複一次能夠把目錄往上提高一個層次: 
好比:$d = dirname(dirname(__FILE__)); 
其實就是把一個目錄給dirname()作參數了.由於dirname()返回最後的目錄不帶\\或者是/ 
因此重複使用的時候能夠認爲 dirname() 把最下層的目錄當成文件名來處理了.照常返回 
當前目錄的上級目錄.這樣重複就獲得了它的上一級的目錄. 

包含獲得上一級目錄的文件 
include(dirname(__FILE__).'/../filename.php'); 

__FILE__的路徑是當前代碼所在文件 

dirname(dirname(__FILE__));獲得的是文件上一層目錄名 

dirname(__FILE__);獲得的是文件所在層目錄名server

以下圖:blog

相關文章
相關標籤/搜索