chmod() 函數改變檔案模式。 chmod — Changes file mode 若成功則傳回 TRUE,否則回傳 FALSE。
語法
chmod(file,mode)參數 描述
file 必要。規定要檢查的文件。
mode 可選。規定新的權限。
mode 參數由4 個數字組成:
第一個數字永遠是0
第二個數字規定所有者的權限
第二個數字規定所有者所屬的使用者群組的權限
第四個數字規定其他所有人的權限
可能的值(如需設定多個權限,請對下面的數字進行總計):
1 - 執行權限
2 - 寫入權限
4 - 讀取權限
來看個簡單的實例
<?php chmod("/somedir/somefile", 755); // 十进制数,可能不对 chmod("/somedir/somefile", "u+rwx,go+rx"); // 字符串,不对 chmod("/somedir/somefile", 0755); // 八进制数,正确的 mode 值 ?>
改進遞歸檔案模式@ infosoft ....,這是一個小短,應處理的Linux檔案系統的所有檔案類型。這個可以批次更改檔案或目錄的權限
<?php function chmodr($path, $filemode) { if (!is_dir($path)) return chmod($path, $filemode); $dh = opendir($path); while (($file = readdir($dh)) !== false) { if($file != '.' && $file != '..') { $fullpath = $path.'/'.$file; if(is_link($fullpath)) return FALSE; elseif(!is_dir($fullpath) && !chmod($fullpath, $filemode)) return FALSE; elseif(!chmodr($fullpath, $filemode)) return FALSE; } } closedir($dh); if(chmod($path, $filemode)) return TRUE; else return FALSE; } ?>
如果你目錄太多的話可以用
<?php $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST); foreach($iterator as $item) { chmod($item, $filemode); } ?>
這段程式碼來修改目錄的權限
哈哈,我們不只是講chmod簡單語法,而且還做了複雜的關於chmod使用實例
說明
bool chmod ( string $filename , int $mode )
嘗試將filename 所指定文件的模式改成mode 所給定的。
注意 mode 不會被自動當成八進制數值,也不能用字串(例如 "g+w")。若要確保正確操作,需要在 mode 前面加上 0:
mode 參數包含三個八進位數依序分別指定了擁有者、擁有者所在的群組以及所有人的存取限制。每一部分都可以透過加入所需的權限來計算出所要的權限。數字 1 表示使文件可執行,數字 2 表示使文件可寫,數字 4 表示使文件可讀。加入這些數字來制定所需的權限。有關 UNIX 系統的檔案權限可以閱讀手冊“man 1 chmod”和“man 2 chmod”。
<?php // Read and write for owner, nothing for everybody else chmod("/somedir/somefile", 0600); // Read and write for owner, read for everybody else chmod("/somedir/somefile", 0644); // Everything for owner, read and execute for others chmod("/somedir/somefile", 0755); // Everything for owner, read and execute for owner's group chmod("/somedir/somefile", 0750); ?>
如果成功則回傳 TRUE,失敗則回傳 FALSE。
Note: 目前使用者指的是執行 PHP 的使用者。很可能和通常的 shell 或 FTP 使用者不是同一個。在大多數系統下檔案模式只能被檔案擁有者的使用者改變。
Note: 本函數無法作用於遠端文件,被檢查的文件必須透過伺服器的文件系統存取。
Note: 當安全模式開啟的時候,PHP 會檢查所操作的檔案是否和正在執行的腳本具有相同的 UID (擁有者)。要注意的是,不能修改 SUID,SGID 和 sticky bits。
以上是詳解PHP修改檔案權限函數chmod的詳細內容。更多資訊請關注PHP中文網其他相關文章!