本文給大家匯總介紹了使用PHP獲取當(dāng)前文件所在目錄的父目錄的路徑的2種方法,并附上php獲取路徑和目錄的相關(guān)函數(shù),有需要的小伙伴可以參考下
方法一:先獲得當(dāng)前文件所在文件夾的長(zhǎng)度,然后用substr來(lái)截取掉該長(zhǎng)度:
$dirName = str_replace("\\", "/", dirname(__FILE__));
$dirNameLength = strlen($dirName);
$currentDirNameLength = $dirNameLength - strrpos($dirName,"/"); //獲得當(dāng)前文件所在文件夾的長(zhǎng)度!
$parentDirName = substr($dirName,0,-$currentDirNameLength); //第3個(gè)參數(shù)如果為負(fù)數(shù),那么表示從后面截取掉【該參數(shù)的絕對(duì)值】個(gè)字符。
方法二:將當(dāng)前文件所在文件夾當(dāng)作一個(gè)文件(文件夾其實(shí)是特殊的文件,一切皆為文件?。。?,直接用dirname嵌套一次dirname即可:
$parentDirName = dirname(dirname(__FILE__));
從上可以看出:對(duì)事物的深刻認(rèn)識(shí),能大幅度提高代碼質(zhì)量!
附上:PHP獲取路徑或目錄實(shí)現(xiàn)
PHP獲取目錄和的方法通過(guò)魔術(shù)變量;通過(guò)超級(jí)全局變量;通過(guò)相關(guān)函數(shù)等等:
<?php
/**
* PHP獲取路徑或目錄實(shí)現(xiàn)
*/
//魔術(shù)變量,獲取當(dāng)前文件的絕對(duì)路徑
echo "__FILE__: ========> ".__FILE__;
echo '<br/>';
//魔術(shù)變量,獲取當(dāng)前腳本的目錄
echo "__DIR__: ========> ".__DIR__;
echo '<br/>';
//dirname返回路徑的目錄部分,dirname(__FILE__)相當(dāng)于__DIR__
echo "dirname(__FILE__): ========> ".dirname(__FILE__);
echo '<br/>';
//$_SERVER['PHP_SELF']和$_SERVER['SCRIPT_NAME']的結(jié)果一般相同,他們都是獲取當(dāng)前腳本的文件名
//只有當(dāng)php以cgi方式運(yùn)行時(shí)有區(qū)別,但是現(xiàn)在幾乎找不到以cgi方式運(yùn)行php了
echo '$_SERVER["PHP_SELF"]: ========> '.$_SERVER['PHP_SELF'];
echo '<br/>';
echo '$_SERVER["SCRIPT_NAME"]: ========> '.$_SERVER['SCRIPT_NAME'];
echo '<br/>';
//當(dāng)前執(zhí)行腳本的絕對(duì)路徑。記住,在CLI方式運(yùn)行php是獲取不到的
echo '$_SERVER["SCRIPT_FILENAME"]: ========> '.$_SERVER['SCRIPT_FILENAME'];
echo '<br/>';
//當(dāng)前運(yùn)行腳本所在的文檔根目錄。在服務(wù)器配置文件中定義。
echo '$_SERVER["DOCUMENT_ROOT"]: ========> '.$_SERVER['DOCUMENT_ROOT'];
echo '<br>';
//getcwd()返回當(dāng)前工作目錄
echo "getcwd(): ========> ".getcwd();
echo '<br>';