php:修改目錄下文檔權限(777,644 )

文章分類:PHP編程

PHP chmod() 函數 (upload image permit)

PHP Filesystem 函數

定義和用法

chmod() 函數改變文件模式。

如果成功則返回 TRUE,否則返回 FALSE。

語法


chmod(file,mode)
參數 描述
file 必需。規定要檢查的文件。
mode

可選。規定新的權限。

mode 參數由 4 個數字組成:

  • 第一個數字永遠是 0
  • 第二個數字規定所有者的權限
  • 第二個數字規定所有者所屬的用戶組的權限
  • 第四個數字規定其他所有人的權限

可能的值(如需設置多個權限,請對下面的數字進行總計):

  • 1 - 執行權限
  • 2 - 寫權限
  • 4 - 讀權限

例子

Java代碼 複製代碼
  1. <?php   
  2.   
  3. // 所有者可讀寫,其他人沒有任何權限chmod("test.txt",0600);// 所有者可讀寫,其他人可讀   
  4.   
  5. chmod("test.txt",0644);// 所有者有所有權限,其他所有人可讀和執行chmod("test.txt",0755);// 所有者有所有權限,所有者所在的組可讀chmod("test.txt",0740);   
  6.   
  7. ?>  
<?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 才行.

修改目錄下所有檔案權限

  1. 要將目錄下的檔案都修改成 644, 修改全部權限的方法很簡單, 程式如下: (假設檔名是 chmod.php)
    Php代碼 複製代碼
    1. <?php   
    2. `chmod 644 *`;   
    3. ?>  
    <?php
    `chmod 644 *`;
    ?>
     
  2. 於網址連結 http://DOMAIN-NAME/chmod.php 就會將此目錄下的權限都修改完成了.(不要說我做弊咩. XD)

 上傳檔案立即修改檔案權限

 上述是臨時的做法, 正確應該要於檔案上傳後, 直接就幫他修改檔案權限, 會比較好, 於是來使用 PHP 的 chmod() .

 程式如下:

Php代碼 複製代碼
  1. <?php   
  2. $filename = 'abc.jpg';   
  3. chmod($filename, 0644);   
  4. ?>  
<?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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章