Du bist hier: StartPHPFunktionen › Rekursives chmodDieses Snippet kommentieren

Rekursives chmod

Diese Funktion wandert rekursiv durch ein Verzeichnis durch und ändert von allen Dateien und Verzeichnissen die Zugriffsrechte. Wenn true zurückgegeben wird, wurde der Modus überall geändert. Schlägt eine Datei fehl, wird weitergearbeitet, aber am Ende false zurückgegeben.

<?php

function rchmod($path, $filemode) {
    if ( !is_dir($path) ) return chmod($path, $filemode);

    $dh      = opendir($path);
    $success = true;
    
    while ( $file = readdir($dh) ) {
        if( $file != '.' && $file != '..' ) {
            $fullpath = $path.'/'.$file;
            
            if( is_link($fullpath) )
                continue;
            
            if ( is_dir($fullpath) )
                $success &= rchmod($fullpath, $filemode);
            else
                $success &= chmod($fullpath, $filemode);
        }
    }

    closedir($dh);
    
    return $success && chmod($path, $filemode); // den Pfad selbst noch ändern
}

?>

Kommentar verfassen

Fehler gefunden? Doofer Code? Ein kleines "Danke!"? Hinterlasse einfach einen Kommentar.

(muss sein)
(muss nicht sein, wird nicht angezeigt)

Dein Kommentar wird erst nach einer manuellen Prüfung angezeigt.