Bonjour,
J'ai découvert récemment un petit script (voir ci-dessous), en vue d'automatiser le repassage à une valeur "sécuritaire" de tous les chmod de mes fichiers et dossiers, après leur modif, sur mon serveur distant (OVH)...

Ce script m'a l'air plutôt "fonctionnel", aux dires de l'un des visiteurs sauf que... chez moi, rien ne se passe, comme si la fonction "chmod_R" était ignorée !
Auriez-vous quelque suggestion, svp, pour m'aider à "résoudre" cette affaire ?

En vous remerciant par avance !

Code concerné:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
/* Fonction découverte ici: http://www.webassist.com/forums/showthread.php?t=24093 
   et ici: http://www.diigo.com/annotated/e80e29445dda7f5d3449654f1fcbb53a */
function chmod_R($path, $filemode, $dirmode) {
	if (is_dir($path) ) {
		if (!chmod($path, $dirmode)) {
			$dirmode_str=decoct($dirmode);
			print "Failed applying filemode '$dirmode_str' on directory '$path'\n";
			print " `-> the directory '$path' will be skipped from recursive chmod\n";
			return;
		}
		$dh = opendir($path);
		while (($file = readdir($dh)) !== false) {
			if($file != '.' && $file != '..') { // skip self and parent pointing directories
				$fullpath = $path.'/'.$file;
				chmod_R($fullpath, $filemode,$dirmode);
			}
		}
		closedir($dh);
	} else {
		if (is_link($path)) {
			print "link '$path' is skipped\n";
			return;
		}
		if (!chmod($path, $filemode)) {
			$filemode_str=decoct($filemode);
			print "Failed applying filemode '$filemode_str' on file '$path'\n";
			return;
		}
	}
}
 
chmod_R( 'abc', 0404, 0505);
 
?>