|
chmod(file,mode)參數(shù) 描述
file 必需。規(guī)定要檢查的文件。
mode 可選。規(guī)定新的權(quán)限。
mode 參數(shù)由 4 個(gè)數(shù)字組成:
第一個(gè)數(shù)字永遠(yuǎn)是 0
第二個(gè)數(shù)字規(guī)定所有者的權(quán)限
第二個(gè)數(shù)字規(guī)定所有者所屬的用戶組的權(quán)限
第四個(gè)數(shù)字規(guī)定其他所有人的權(quán)限
可能的值(如需設(shè)置多個(gè)權(quán)限,請(qǐng)對(duì)下面的數(shù)字進(jìn)行總計(jì)):
1 - 執(zhí)行權(quán)限
2 - 寫權(quán)限
4 - 讀權(quán)限
來看個(gè)簡單的實(shí)例
復(fù)制代碼 代碼如下:
<?php
chmod("/somedir/somefile", 755); // 十進(jìn)制數(shù),可能不對(duì)
chmod("/somedir/somefile", "u+rwx,go+rx"); // 字符串,不對(duì)
chmod("/somedir/somefile", 0755); // 八進(jìn)制數(shù),正確的 mode 值
?>
改進(jìn)遞歸文件模式@ infosoft ....,這是一個(gè)小短,應(yīng)處理的Linux文件系統(tǒng)的所有文件類型。這個(gè)可以批量更改文件或目錄的權(quán)限
復(fù)制代碼 代碼如下:
<?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;
}
?>
如果你目錄太多的話可以用
復(fù)制代碼 代碼如下:
<?php
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST);
foreach($iterator as $item) {
chmod($item, $filemode);
}
?>
這段代碼來修改目錄的權(quán)限
哈哈,我們不只是講chmod簡單語法,而且還做了復(fù)雜的關(guān)于chmod使用實(shí)例
說明
bool chmod ( string $filename , int $mode )
嘗試將 filename 所指定文件的模式改成 mode 所給定的。
注意 mode 不會(huì)被自動(dòng)當(dāng)成八進(jìn)制數(shù)值,而且也不能用字符串(例如 "g+w")。要確保正確操作,需要給 mode 前面加上 0:
mode 參數(shù)包含三個(gè)八進(jìn)制數(shù)按順序分別指定了所有者、所有者所在的組以及所有人的訪問限制。每一部分都可以通過加入所需的權(quán)限來計(jì)算出所要的權(quán)限。數(shù)字 1 表示使文件可執(zhí)行,數(shù)字 2 表示使文件可寫,數(shù)字 4 表示使文件可讀。加入這些數(shù)字來制定所需要的權(quán)限。有關(guān) UNIX 系統(tǒng)的文件權(quán)限可以閱讀手冊(cè)“man 1 chmod”和“man 2 chmod”。
復(fù)制代碼 代碼如下:
<?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: 當(dāng)前用戶指的是執(zhí)行 php 的用戶。很可能和通常的 shell 或者 FTP 用戶不是同一個(gè)。在大多數(shù)系統(tǒng)下文件模式只能被文件所有者的用戶改變。
Note: 本函數(shù)不能作用于遠(yuǎn)程文件,被檢查的文件必須通過服務(wù)器的文件系統(tǒng)訪問。
Note: 當(dāng)安全模式打開的時(shí)候,php 會(huì)檢查所操作的文件是否和正在執(zhí)行的腳本具有相同的 UID (所有者)。要注意的是,不能修改 SUID,SGID 和 sticky bits。
php技術(shù):PHP chmod 函數(shù)與批量修改文件目錄權(quán)限,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。