PHP: Verzeichnis rekursiv kopieren

PHP bietet leider keine Möglichkeit um ein Verzeichnis inkl. aller Unterordner an einen anderen Ort zu kopieren. Hierfür kann die folgende Methode verwendet werden:

Code:

function copyDir($sSourcePath, $sTargetPath)
{  
    if (is_dir($sSourcePath) && !is_dir($sTargetPath))
    {
        mkdir($sTargetPath, 0755);
        foreach ($oIterator = new \RecursiveIteratorIterator(
                new \RecursiveDirectoryIterator($sSourcePath, \RecursiveDirectoryIterator::SKIP_DOTS),
                \RecursiveIteratorIterator::SELF_FIRST) as $oItem)
        {
            if ($oItem->isDir())
                mkdir($sTargetPath.DIRECTORY_SEPARATOR.$oIterator->getSubPathName());
            else
                copy($oItem, $sTargetPath.DIRECTORY_SEPARATOR.$oIterator->getSubPathName());
        }
        return true;
    }
    return false;
}


Beispiel:

copyDir("./source", "./target");

Für Feedback und Verbesserungsmöglichkeiten kann die Kommentarfunktion benutzt werden 🙂 .

Schreibe einen Kommentar