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


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

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

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

比如文件 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__) 一般會返回文件所的當前目錄到系統根目錄的一個目錄結構。

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

幾個 PHP 的“魔術常量”

名稱 說明 
__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。 
測試的代碼如下:

<?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__);得到的是文件所在層目錄名

如下圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM