__FILE__ 是PHP魔術常量 ,返回當前正執(zhí)行的PHP文件的完整路徑(包括目錄和當前文件的文件名)屬于絕對路徑
dirname(__FILE__) 函數(shù)返回的是腳本所在在的路徑(目錄,不含當前PHP文件的文件名)。
dirname(__FILE__) 一般會返回文件所的當前目錄直到系統(tǒng)根目錄的一個完整目錄結構。不會返回當前的文件名稱。
案例命名以下內容為b.php:
<?php$dir= dirname(__FILE__);echo $dir//將當前文件所在的目錄輸出?>
輸出結果: /www/wwwroot/vevbcom
這個相當于, asp中的server.mappth的用法
如果b.php被其他目錄里的a.php文件require 或者 include 引用的話。 變量$dir 的內容還是b.php所在的那個文件夾的路徑。 而不會變成a.php文件所在的目錄。
dirname(__FILE__) 也可能返回一個 . (當前目錄) [原因是 b.php 文件在 http.conf 或者 PHP 配置開發(fā)環(huán)境的默認WEB目錄下
幾個PHP的“魔術常量”
名稱 說明
__LINE__ 文件中的當前行號。
__FILE__ 文件的完整路徑和文件名。如果用在包含文件中,則返回包含文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑,而在此之前的版本有時會包含一個相對路徑。
__FUNCTION__ 函數(shù)名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數(shù)被定義時的名字(區(qū)分大小寫)。在 PHP 4 中該值總是小寫字母的。
__CLASS__ 類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區(qū)分大小寫)。在 PHP 4 中該值總是小寫字母的。
__METHOD__ 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區(qū)分大小寫比如當前文件是放在(d:/www/)下,文件名是test.php。
測試的代碼如下:
<?phpecho __FILE__ ; // 取得當前文件的絕對地址,結果:/www/wwwroot/vevbcom/test.phpecho dirname(__FILE__); // 取得當前文件所在的絕對目錄,結果:/www/wwwroot/vevbcomecho dirname(dirname(__FILE__)); //取得當前文件的上一層目錄名,結果:/www/wwwroot/?>
使用方法提示
dirname(__FILE__) 取到的是當前文件的絕對路徑,也就是說,比起相對路徑,查找速度是最快的。
如果重復一次可以把目錄往上提升一個層次:
比如:$d = dirname(dirname(__FILE__));
其實就是把一個目錄給dirname()做參數(shù)了.因為dirname()返回最后的目錄不帶//或者是/
所以重復使用的時候可以認為 dirname() 把最下層的目錄當成文件名來處理了.照常返回
當前目錄的上級目錄.這樣重復就得到了它的上一級的目錄.
包含得到上一級目錄的文件
include(dirname(__FILE__).'/../filename.php');
__FILE__的路徑是當前代碼所在文件
dirname(dirname(__FILE__));得到的是文件上一層目錄名
dirname(__FILE__);得到的是文件所在層目錄名
以上就是PHP獲取當前文件名路徑 PHP dirname(__FILE__) 獲取當前文件絕對路徑的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網(wǎng)。新聞熱點
疑難解答