在php編程中,有時候需要創建文件夾。使用mkdir()函數可以完成這項任務,但是如果不指定相應的權限模式,就會導致程序無法完成創建操作。那么,這里就需要學習到一個值得注意的數字: 0755。
0755的含義
0755其實是由三部分數字組成的,每個數字分別代表這個文件/文件夾的權限模式,下面一一介紹:
- 第一位數字代表擁有者的權限,0表示沒有任何權限,1表示執行,2表示寫入,4表示讀取,這里的7表示執行+寫入+讀取的權限。
- 第二位數字代表文件擁有者所在的組的權限,0表示沒有任何權限,1表示執行,2表示寫入,4表示讀取,這里的5表示讀取+執行的權限。
- 第三個數字代表其他非文件擁有者的人的權限,0表示沒有任何權限,1表示執行,2表示寫入,4表示讀取,這里的5表示讀取+執行的權限。
- 這三個數字的具體排列順序可以忽略,因為在設置權限時并不依賴于排列順序。
了解了0755的含義之后,接下來我們來說說他在創建文件夾時的具體作用。
使用0755創建文件夾的例子
<?php
$dir = "/var/www/html/images/thumbnails"
mkdir($dir, 0755);
?>
以上代碼的作用是創建了一個thumbnails文件夾,并將其所在目錄為/images,其完整路徑為/var/www/html/images/thumbnails。其中,0755表明這個文件夾的權限模式,前3個數字代表文件夾的擁有者、擁有者所在組和其他用戶(非擁有者和組成員)的權限,分別對應于 rwx, r-x, r-x,也就是說,這個文件夾的擁有者可以讀、寫和執行(包括進入其中),其所在組的用戶也具有相同的權限,但是其他用戶只擁有讀和執行的權限。
深入理解文件夾權限擁有的作用
我們知道,文件夾中除了保存文件,還要為之提供路徑,而創建的目的也不止于一個。在這些情況下,權限的設置也很有講究。
假設文件夾路徑為/var/www/html/folder,里面有一張圖片文件。如果只是普通讀取目錄,訪問者只需要具有"對目錄執行權限",即"1+0+1=010",即文件夾用755,而不需要文件所在的目錄也有執行權限(即755)。因此,在PHP開發者使用mkdir函數來創建文件夾時,可以嘗試使用 0755 權限選項。
除此之外,還有一些特殊的情況需要考慮。比如上傳文件所在的文件夾(directory)和上傳文件的權限不同,因為上傳文件可能是以不同的擁有者權限運行的PHP腳本進行檢查。因此,應該特別設置上傳文件的權限,指定所有者,防止有人濫用上傳文件的權限。需要注意的是,有些PHP腳本不會把上傳文件的權限隨機為所有者,因此可能需要使用 chown() 和 chmod() 來更改這些權限。
以上例子和解釋,相信大家對0755的含義和作用已經有了比較深入的了解。使用chmod操作更改文件夾權限是一種常見的安全操作,掌握這個知識點,在進行PHP開發過程中更加得心應手。