chmod() 関数はファイルモードを変更します。 chmod — ファイル モードを変更します。成功した場合は TRUE を返し、それ以外の場合は FALSE を返します。
構文
chmod(file,mode) パラメータ 説明
file 必須。チェックするドキュメントを指定します。
モードはオプションです。新しい権限を指定します。
モードパラメータは 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 != '.' && $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で指定されたモードに変更してみます。
モードは自動的に 8 進数値として扱われないこと、また文字列 (「g+w」など) にすることはできないことに注意してください。正しい動作を保証するには、モードの前に 0 を追加する必要があります。
モード パラメータには、所有者、所有者のグループ、全員のアクセス制限を順番に指定する 3 つの 8 進数が含まれます。各部分は、必要な権限を追加することで計算できます。数値 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 を返します。
注: 現在のユーザーとは、PHP を実行しているユーザーを指します。ほとんどの場合、通常のシェルまたは FTP ユーザーと同じではありません。ほとんどのシステムでは、ファイルのモードを変更できるのは、そのファイルを所有するユーザーだけです。
注: この機能はリモート ファイルでは使用できません。チェックされるファイルにはサーバーのファイル システム経由でアクセスする必要があります。
注: セーフ モードがオンになっている場合、PHP は操作されているファイルが実行されているスクリプトと同じ UID (所有者) を持つかどうかを確認します。 SUID、SGID、およびスティッキー ビットは変更できないことに注意してください。
以上がPHPのファイルパーミッション関数chmodの詳細解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。