php:修改目錄下文件許可權(777,644 )
阿新 • • 發佈:2019-02-17
PHP chmod() 函式 (upload image permit)
定義和用法
chmod() 函式改變檔案模式。
如果成功則返回 TRUE,否則返回 FALSE。
語法
chmod(file,mode)
引數 | 描述 |
file | 必需。規定要檢查的檔案。 |
mode |
可選。規定新的許可權。 mode 引數由 4 個數字組成:
可能的值(如需設定多個許可權,請對下面的數字進行總計):
|
例子
Java程式碼- <?php
- // 所有者可讀寫,其他人沒有任何許可權chmod("test.txt",0600);// 所有者可讀寫,其他人可讀
- chmod("test.txt",0644);// 所有者有所有許可權,其他所有人可讀和執行chmod("test.txt",0755);// 所有者有所有許可權,所有者所在的組可讀chmod("test.txt",0740);
- ?>
<?php // 所有者可讀寫,其他人沒有任何許可權chmod("test.txt",0600);// 所有者可讀寫,其他人可讀 chmod("test.txt",0644);// 所有者有所有許可權,其他所有人可讀和執行chmod("test.txt",0755);// 所有者有所有許可權,所有者所在的組可讀chmod("test.txt",0740); ?>
PHP 使用 chmod() 的注意事項
由於某虛擬主機上遇到很奇妙的狀況, 做圖片上傳的功能, 但是圖片上傳後, 許可權是 600, 而 owner 是 Apache user, 所以要做 local 的備份時, 那些上傳的圖片都無法備份.
此狀況只好寫個程式讓 Apache user 來做 chmod 的動作, 將圖片檔案許可權都改成 644 才行.
修改目錄下所有檔案許可權
- 要將目錄下的檔案都修改成 644, 修改全部許可權的方法很簡單, 程式如下: (假設檔名是 chmod.php)
Php程式碼
- <?php
- `chmod 644 *`;
- ?>
<?php `chmod 644 *`; ?>
- 於網址連結 http://DOMAIN-NAME/chmod.php 就會將此目錄下的許可權都修改完成了.(不要說我做弊咩. XD)
上傳檔案立即修改檔案許可權
上述是臨時的做法, 正確應該要於檔案上傳後, 直接就幫他修改檔案許可權, 會比較好, 於是來使用 PHP 的 chmod() .
程式如下:
Php程式碼
- <?php
- $filename = 'abc.jpg';
- chmod($filename, 0644);
- ?>
<?php $filename = 'abc.jpg'; chmod($filename, 0644); ?>
這樣子就能將上傳的 abc.jpg 許可權改成 644 的許可權.
chmod 注意事項
上面是正確寫法, 要注意的是, 下面都是錯誤的寫法: (註解的是許可權的結果)
- chmod($filename, '644'); // --w----r-T
- chmod($filename, '0644'); // --w----r-T
- chmod($filename, 644); // --w----r-T
- chmod($filename, 'u+rwx,go+rx'); // --------- (000)
- chmod($filename, 'a+x'); // --w----r-T
- 官方網站說明: bool chmod (string $filename , int $mode)
第二個引數的 int $mode, 這欄一定要是數字, 而且要是八進位的數字, 不然都會是上面註解的結果.
八進位在這邊很好記, 就是原本下的十進位指令, 前面加個 0 就可以了, 如下都是正確範例:
- chmod($filename, 0644); // -wr--r--r
- chmod($filename, 0755); // -wr-wr-wr