USE AT OWN RISK
Generated: Tue Jul 31 15:22:15 2007 from setmode.php 2007/07/28 1.8 KB bytes.
<html> <head> <title>Set Mode Recursively</title> </head> <body> <h1 align="center">Set FILE MODE, recursively</h1> <?php // AIM: To recursively set the folder and file MODE $meol = "\r\n"; $dir_arr = array(); $fil_arr = array(); $fil_cnt = 0; $dir_cnt = 0; $dir_cnt2 = 0; $fil_cnt2 = 0; // $in_dir = 'C:/HOMEPAGE/Nigeld/tomato/albums'; $in_dir = 'C:/HOMEPAGE/Nigeld/test'; //$in_dir = "/home/content/n/i/g/nigeldickinson/html/tomato/albums"; //$in_dir = '/home/content/n/i/g/nigeldickinson/html/tomato/test'; ProcessDir($in_dir); $dir_cnt2 = count($dir_arr); $fil_cnt2 = count($fil_arr); print "<p>Processed {$dir_cnt} ({$dir_cnt2}) directories, {$fil_cnt} ({$fil_cnt2}) files.</p>{$meol}"; $dir_cnt2 = 0; $fil_cnt2 = 0; for( $i = 0; $i < $dir_cnt; $i++ ) { if( set_my_mode( $dir_arr[$i] ) ) { $dir_cnt2++; } } print "<p>Done $dir_cnt2 folders ...</p>$meol"; for( $i = 0; $i < $fil_cnt; $i++ ) { if( set_my_mode( $fil_arr[$i] ) ) { $fil_cnt2++; } } print "<p>Done $fil_cnt2 files ...</p>$meol"; exit(0); function set_my_mode( $theFil ) { //if( chmod($theFil, 0777) ) { // octal; correct value of mode // return 1; //} return 0; } function ProcessDir($theDir) { global $meol; global $dir_arr, $fil_arr; global $fil_cnt, $dir_cnt; $mydir = opendir($theDir) ; if( !$mydir ) { echo "ERROR: Can not OPEN directory [$theDir] ... returning ... $meol" ; return 0; } while(false !== ($fn = readdir($mydir))) //scan through the whole directory { if( !(($fn == '.') || ($fn == '..') || ($fn == '_vti_cnf'))) { $inp_file = $theDir . '/' . $fn; if( is_dir( $inp_file ) ) { $dir_arr[] = $inp_file; $dir_cnt++; ProcessDir($inp_file); } else { $fil_arr[] = $inp_file; $fil_cnt++; } } } closedir($mydir); } ?> </body> </html>