---
# System prepended metadata

title: ch9 檔案的處理(9.1)
tags: [挑戰PHP7／MySQL程式設計與超強專題特訓班(第四版)]

---

---
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)