Dominique Meeùs
Dernière modification le
retour à la table des matières
— à l’index
— à ma page de départ
Trouvé le 16-1-2011 en http://snipplr.com/view.php?codeview&id=5350. Je n’ai pu m’empêcher de faire des changements cosmétiques dans les accolades ou dans certains commentaires ; j’ai donc pu introduire aussi des erreurs.
<?php
/**
Chmods files and folders with different permissions.
This is an all-PHP alternative to using: \n
exec("find ".$path." -type f -exec chmod 644 {} \;"); \n
exec("find ".$path." -type d -exec chmod 755 {} \;");
@author Jeppe Toustrup (tenzer at tenzer dot dk)
@param $path An either relative or absolute path to a file or directory
which should be processed.
@param $filePerm The permissions any found files should get.
@param $dirPerm The permissions any found folder should get.
@return Returns TRUE if the path if found and FALSE if not.
@warning The permission levels has to be entered in octal format, which
normally means adding a zero ("0") in front of the permission level. \n
More info at: http://php.net/chmod.
*/
function recursiveChmod($path, $filePerm=0644, $dirPerm=0755)
{
// Check if the path exists
if(!file_exists($path))
{
return(FALSE);
}
// See whether this is a file
if(is_file($path))
{
// Chmod the file with our given filepermissions
chmod($path, $filePerm);
} // If this is a directory...
elseif(is_dir($path))
{
// Then get an array of the contents
$foldersAndFiles = scandir($path);
// Remove "." and ".." from the list
$entries = array_slice($foldersAndFiles, 2);
// Parse every result…
foreach($entries as $entry)
{
// And call this function again recursively, with the same permissions
recursiveChmod($path."/".$entry, $filePerm, $dirPerm);
}
// When we are done with the contents of the directory, we chmod the directory itself
chmod($path, $dirPerm);
}
// Everything seemed to work out well, return TRUE
return(TRUE);
}
?>
⚓