方法一:先獲得當前文件所在文件夾的長度,然後用substr來截取掉該長度:
復制代碼 代碼如下: $dirName = str_replace("\\", "/", dirname(__FILE__));
$dirNameLength = strlen($dirName);
$currentDirNameLength = $dirNameLength - strrpos($dirName,"/"); //獲得當前文件所在文件夾的長度!
$parentDirName = substr($dirName,0,-$currentDirNameLength); //第3個參數如果為負數,那麼表示從後面截取掉【該參數的絕對值】個字符。
方法二:將當前文件所在文件夾當作一個文件(文件夾其實是特殊的文件,一切皆為文件!!),直接用dirname嵌套一次dirname即可:
$parentDirName = dirname(dirname(__FILE__));
從上可以看出:對事物的深刻認識,能大幅度提高代碼質量!
附上:PHP獲取路徑或目錄實現
PHP獲取目錄和的方法通過魔術變量;通過超級全局變量;通過相關函數等等:
<?php /** * PHP獲取路徑或目錄實現 */ //魔術變量,獲取當前文件的絕對路徑 echo "__FILE__: ========> ".__FILE__; echo '<br/>'; //魔術變量,獲取當前腳本的目錄 echo "__DIR__: ========> ".__DIR__; echo '<br/>'; //dirname返回路徑的目錄部分,dirname(__FILE__)相當於__DIR__ echo "dirname(__FILE__): ========> ".dirname(__FILE__); echo '<br/>'; //$_SERVER['PHP_SELF']和$_SERVER['SCRIPT_NAME']的結果一般相同,他們都是獲取當前腳本的文件名 //只有當php以cgi方式運行時有區別,但是現在幾乎找不到以cgi方式運行php了 echo '$_SERVER["PHP_SELF"]: ========> '.$_SERVER['PHP_SELF']; echo '<br/>'; echo '$_SERVER["SCRIPT_NAME"]: ========> '.$_SERVER['SCRIPT_NAME']; echo '<br/>'; //當前執行腳本的絕對路徑。記住,在CLI方式運行php是獲取不到的 echo '$_SERVER["SCRIPT_FILENAME"]: ========> '.$_SERVER['SCRIPT_FILENAME']; echo '<br/>'; //當前運行腳本所在的文檔根目錄。在服務器配置文件中定義。 echo '$_SERVER["DOCUMENT_ROOT"]: ========> '.$_SERVER['DOCUMENT_ROOT']; echo '<br>'; //getcwd()返回當前工作目錄 echo "getcwd(): ========> ".getcwd(); echo '<br>';