ホームページ  >  記事  >  バックエンド開発  >  php chmod() 関数とファイルディレクトリのアクセス許可の一括変更

php chmod() 関数とファイルディレクトリのアクセス許可の一括変更

怪我咯
怪我咯オリジナル
2017-07-10 16:25:186756ブラウズ

chmod() 関数はファイルモードを変更します。 chmod — ファイル モードを変更します。成功した場合は TRUE を返し、それ以外の場合は FALSE を返します。

構文

chmod(file,mode)


パラメータ 説明
ファイル 必須。チェックするドキュメントを指定します。
モード

オプション。新しい権限を指定します。

mode パラメータは 4 つの数字で構成されます:

  • 最初の数字は常に 0 です

  • 2 番目の数字は所有者の権限を指定します

  • 2 番目の数字は所有者が属するユーザーグループを指定します 権限

  • 4 番目の数字は、他の全員の権限を指定します

可能な値 (複数の権限を設定するには、以下の数字を合計します):

  • 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 != &#39;.&#39; && $file != &#39;..&#39;) { 
$fullpath = $path.&#39;/&#39;.$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); 
} 
?>

このコードは変更するために使用されますディレクトリの権限

以上がphp chmod() 関数とファイルディレクトリのアクセス許可の一括変更の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。