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;
}
{
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 🙂 .