解析php dirname()與__FILE__常量的應(yīng)用
更新時(shí)間:2013年06月24日 11:20:40 作者:
本篇文章是對php中的dirname()與__FILE__常量的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
__FILE__表示當(dāng)前所在文件的絕對路徑包括文件名,dirname(__FILE__)表示當(dāng)前文件的絕對路徑,basename(__FILE__)表示當(dāng)前文件的文件名稱,dirname(__FILE__)."/f/".basename(__FILE__)則表示當(dāng)前文件所在目錄下的f目錄下的,文件名稱為dirname(__FILE__)的文件,require表示包含該文件到這個(gè)文件。
下面是詳解:
1)dirname(__FILE___) 函數(shù)返回的是腳本所在在的路徑。
比如文件 b.php 包含如下內(nèi)容:
<?php
$basedir = dirname(__FILE__);
?>
如果b.php被其他目錄里的a.php文件require 或者 include 去引用的話。
變量$basedir 的內(nèi)容還是b.php所在的那個(gè)文件夾的路徑。
而不是變成a.php文件所在的目錄。
2)dirname(__FILE__) 一般會(huì)返回文件所的當(dāng)前目錄到系統(tǒng)根目錄的一個(gè)目錄結(jié)構(gòu)。
不會(huì)返回當(dāng)前的文件名稱。
dirname(__FILE__) 也可能返回一個(gè) . (當(dāng)前目錄)
[原因是 b.php 文件在 http.conf 或者 PHP 配置開發(fā)環(huán)境的默認(rèn)WEB目錄下.
比如 WEB_ROOT 為: "C:/root/www/".]
b.php文件路徑為: "C:/root/www/b.php".
3)使用方法提示,
如果重復(fù)一次可以把目錄往上提升一個(gè)層次:
比如:$d = dirname(dirname(__FILE__));
其實(shí)就是把一個(gè)目錄給dirname()做參數(shù)了.因?yàn)閐irname()返回最后的目錄不帶\\或者是/
所以重復(fù)使用的時(shí)候可以認(rèn)為 dirname() 把最下層的目錄當(dāng)成文件名來處理了.照常返回
當(dāng)前目錄的上級(jí)目錄.這樣重復(fù)就得到了它的上一級(jí)的目錄.
4)包含得到上一級(jí)目錄的文件
include(dirname(__FILE__).''/../filename
下面是詳解:
1)dirname(__FILE___) 函數(shù)返回的是腳本所在在的路徑。
比如文件 b.php 包含如下內(nèi)容:
<?php
$basedir = dirname(__FILE__);
?>
如果b.php被其他目錄里的a.php文件require 或者 include 去引用的話。
變量$basedir 的內(nèi)容還是b.php所在的那個(gè)文件夾的路徑。
而不是變成a.php文件所在的目錄。
2)dirname(__FILE__) 一般會(huì)返回文件所的當(dāng)前目錄到系統(tǒng)根目錄的一個(gè)目錄結(jié)構(gòu)。
不會(huì)返回當(dāng)前的文件名稱。
dirname(__FILE__) 也可能返回一個(gè) . (當(dāng)前目錄)
[原因是 b.php 文件在 http.conf 或者 PHP 配置開發(fā)環(huán)境的默認(rèn)WEB目錄下.
比如 WEB_ROOT 為: "C:/root/www/".]
b.php文件路徑為: "C:/root/www/b.php".
3)使用方法提示,
如果重復(fù)一次可以把目錄往上提升一個(gè)層次:
比如:$d = dirname(dirname(__FILE__));
其實(shí)就是把一個(gè)目錄給dirname()做參數(shù)了.因?yàn)閐irname()返回最后的目錄不帶\\或者是/
所以重復(fù)使用的時(shí)候可以認(rèn)為 dirname() 把最下層的目錄當(dāng)成文件名來處理了.照常返回
當(dāng)前目錄的上級(jí)目錄.這樣重復(fù)就得到了它的上一級(jí)的目錄.
4)包含得到上一級(jí)目錄的文件
include(dirname(__FILE__).''/../filename
相關(guān)文章
PHP類和對象相關(guān)系統(tǒng)函數(shù)與運(yùn)算符小結(jié)
這篇文章主要介紹了PHP類和對象相關(guān)系統(tǒng)函數(shù)與運(yùn)算符,結(jié)合實(shí)例形式總結(jié)分析了php類與對象操作過程中常用的系統(tǒng)函數(shù)與運(yùn)算符,需要的朋友可以參考下2016-09-09PHP實(shí)現(xiàn)獲取ip地址的5種方法,以及插入用戶登錄日志操作示例
這篇文章主要介紹了PHP實(shí)現(xiàn)獲取ip地址的5種方法,以及插入用戶登錄日志操作,結(jié)合實(shí)例形式總結(jié)分析了php獲取訪客IP地址的5種常見操作方法,以及將用戶登陸信息寫入登陸日志數(shù)據(jù)庫相關(guān)操作技巧,需要的朋友可以參考下2019-02-02php 指定范圍內(nèi)多個(gè)隨機(jī)數(shù)代碼實(shí)例
在php中生成隨機(jī)數(shù)據(jù)我們可以使用rand,mt_rand都可以生成指定范圍內(nèi)隨機(jī)數(shù)據(jù)了,下面給各位同學(xué)介紹一下方法2016-07-07php 正確解碼javascript中通過escape編碼后的字符
js的escape如何在PHP中來解呢?下面的這個(gè)函數(shù)可以正確的解析,網(wǎng)上有不少unescape的函數(shù),但好用的不多.2010-01-01php+ajax實(shí)時(shí)輸入自動(dòng)搜索匹配的方法
這篇文章主要介紹了php+ajax實(shí)時(shí)輸入自動(dòng)搜索匹配的方法,實(shí)例分析了兩種實(shí)現(xiàn)方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12curl 出現(xiàn)錯(cuò)誤的調(diào)試方法(必看)
下面小編就為大家?guī)硪黄猚url 出現(xiàn)錯(cuò)誤的調(diào)試方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02