這裡針對 __DIR__、__FILE__、basename()、dirname()
幾個方法進行實測
輸出:
D:\xampp\htdocs\phpSyntaxLab\index.php
D:\xampp\htdocs\phpSyntaxLab
index.php
index
phpSyntaxLab
phpSyntax
D:\xampp\htdocs\phpSyntaxLab
D:\xampp\htdocs
D:\xampp\htdocs
__FILE__取得當前位置的路徑以至完整檔名;
__DIR__ 則可取得除了檔名之外的完整路徑;
basename() 可用以忽略完整路徑,僅取得檔案名,
其會取得在最後一個 \ 斜線符號後方的字串,儘管其為資料夾名,而非檔名也會被擷取,
第二個參數可鍵入副檔名,如此取得結果即不包含副檔名,其作用類似於 preg_replace('/.php$/');
dirname(__FILE__) 與 __DIR__ 都會取得檔案系統中的完整路徑,
讓兩種方式各跑一百萬遍輸出:
dirname(__FILE__) cost 0.4360249042511 seconds
__DIR__ cost 0.088005065917969 seconds
__DIR__較dirname(__FILE)快了近五倍。
但由於dirname() 取值方式為取至最後一個斜線之前的字串,
使用dirname(dirname(__FILE__))可相當方便的取到再更上一層的路徑。
需特別注意的是, __DIR__ 只有在 php 5.3之後的版本才可使用
沒有留言:
張貼留言