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() 把最下層的目錄當成檔名來處理了.的目錄.
#包含得到上一層目錄的檔案
include(dirname(FILE).'/../filename.php');
FILE的路徑是目前程式碼所在檔案
dirname(dirname(FILE));得到的是檔案上一層目錄名稱
dirname(FILE);得到的是檔案所在層目錄名稱
以上是如何使用php中的dirname(__FILE__) 取得目前檔案的絕對路徑的詳細內容。更多資訊請關注PHP中文網其他相關文章!