phpで特定のディレクトリ配下のパーミッションを再帰的に変更する

技術関係
// 出力バッファをクリアする
ob_end_flush();
ob_start('mb_output_handler');
// 検索対象の基点となるディレクトリ
$base = "/path/to/parent/dir";
$dir  = "target";
print(  "**start " . date("Y-m-d H:i:s"). "<br>");
traceDir($base , $dir);
print(  "**end " . date("Y-m-d H:i:s"). "<br>");
function traceDir( $base, $dir ) {
$path = "{$base}/{$dir}";
$dh  = opendir( $path );
while (false !== ($filename = readdir($dh))) {
if( $filename == "." || $filename == ".." )
continue;
// ここでパーミッションを変えている。
//  別に其れ以外の処理でも可能。
//  ディレクトリとファイルで処理を変えたいならもう少し後ろに
$ret = chmod($file, 0777);
if($ret) {
print( "Success");
}
else {
print(  "Error");
}
print(  "\t");
if( is_dir( $file ) ) {
// ディレクトリの場合
traceDir( $path , $filename );
print(  "[D] {$file}<br>");
}
else {
// ファイルの場合
$ret = chmod($file, 0777);
print(  "[F] {$file} <br>");
flush();
ob_end_flush();
ob_start();
}
}
}
タイトルとURLをコピーしました