PHP 初学者的问题,如何在此脚本中排除文件夹


Php beginners questions, how can I exclude a folder in this script

有人可以帮我吗?我使用以下脚本,它可以工作,但我想排除文件夹。如果有更好的脚本也很好,我尝试了很多,但结合 magento,我有点难以理解。因此,目标是将文件夹复制到另一个文件夹,包括符号链接和文件夹内的所有内容。此脚本的问题在于他在同一文件夹中复制,然后创建一个循环

    $source = Mage::getBaseDir();
    $dest = Mage::getStoreConfig('Setupstaging_options/product_page/stagingfolder');
    mkdir($dest, 0755);
    foreach (
    $iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS),
    RecursiveIteratorIterator::SELF_FIRST) as $item) {
    if ($item->isDir()) {
    mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
    }    else {
    copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
    }
  }
如果您有

要跳过的文件夹的名称:

$exclude_dirs = array("onedir", "twodir"); // List of directory names to exclude
$source = Mage::getBaseDir();
$dest = Mage::getStoreConfig('Setupstaging_options/product_page/stagingfolder');
mkdir($dest, 0755);
foreach ($iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST) as $item) {
    if ($item->isDir() && !in_array($item->getFilename(), $exclude_dirs)) {  // If this Dir's name is not in $exclude_dirs
        mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
    }
    else {
        copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
    }
}

我认为您可以使用此条件:

 if ($item->isDir()) {
     if($item->getSubPathName() =! "your path directory to exclude"){
         mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
     }           
 } else {
     copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
 }