--- tags: 挑戰PHP7/MySQL程式設計與超強專題特訓班(第四版) --- # ch9 檔案的處理(9.1) ## 9.1 資料夾、檔案路徑的相關資訊 ### 使用預設變數及常數取得路徑資訊 $_SERVER 預設變數可以顯示伺服器的相關資訊,其中與路徑相關的有: | 陣列索引鍵 | 說明 | | -------- | -------- | | PHP_SELF | 目前網頁的虛擬路徑。 | | SCRIPT_FILENAME | 目前網頁的實體路徑。 | > __ FILE __ : 顯示目前頁面的實際路徑與檔案。 ``` <?php echo $_SERVER["PHP_SELF"]."<br />"; echo $_SERVER["SCRIPT_FILENAME"]."<br />"; echo __FILE__; ?> ``` ![](https://i.imgur.com/a5KuFNP.png) ### 取得實際路徑 以及 由路徑中取得資料夾與檔案名稱 realpath("相對路徑") basename( 檔案路徑 [, 副檔名]) //由完整路徑中取得檔案名稱,設定副檔名還可去除副檔名。 > __ DIR __ : 顯示目前頁面的實際路徑。 ``` <?php echo "目前檔案所在的路徑為:".realpath(".")."<br />"; echo "完整的檔案路徑為:".__FILE__."<br />"; echo "資料夾為:".__DIR__."<br />"; echo "檔名為:".basename(__FILE__)."<br />"; ?> ``` ![](https://i.imgur.com/11LNDMf.png) > 使用 realpath() 函式取得目前路徑「.」的實際路徑。 > __ FILE __ 常數可顯示目前頁面的完整實際路徑檔案名稱。 > __ DIR __ 常數可顯示目前頁面的完整實際路徑。 > 利用 basename() 函式取出完整路徑的檔名顯示。 ### pathinfo() : 取得路徑資訊 ![](https://i.imgur.com/YZXekLN.png) ### 路徑中的 「\」與 「/」 在表達路徑時,檔案或是資料夾間都會利用「\」與 「/」來代表路徑符號, 一般來說在 Linux 的系統中都使用 「/」符號, 而 Windows 預設是使用「\」。 如: ``` "C:\htdocs\ch09\php_file1.php" //Windows 路徑表示方法 "/htdocs/ch09/php_file1.php" //Linux 路徑表示方法 ``` 但是 「\」符號剛好也是字串中的跳脫字元,不小心與其他英文字母搭配即會有其他功能的效果,例如 \n (換行)、\t (定位)等,舉例來說: ``` "C:\htdocs\test\news.php" ``` 這個路徑中「\」剛好與後方路徑或是檔案的第一個字母結合,即會產生換行與定位的效果,所以**在字串中要加上跳脫字元讓整個字串正常**: ``` "C:\\htdocs\\test\\news.php" ``` ### 將檔案詳細資訊存入陣列中 取得最新的檔案資訊時,要先執行 clearstatcache() 清除原來的快取,才能得到新的資料。 stat(檔案路徑):將指定檔案的資訊存入陣列中。 ``` <?php $path = __FILE__; clearstatcache(); $pathData = stat($path); print_r($pathData); ?> ``` ![](https://i.imgur.com/DoZoSQs.png) ### 查詢檔案及資料夾屬性 ### 查詢磁碟空間及剩餘空間 ----- ### [9.2 資料夾的處理 & 9.3 檔案的處理](https://hackmd.io/A5qm7N9wT6CUiZEn9tDOHw)