将文件和目录添加到特定的子目录

Add files and directory to a specific sub directory

我正在使用以下脚本将我的目录(在本例中为 My_Theme)的文件移动到 zip 存档 wordpress.zip.

define('CLIENT_PATH', $_SERVER['DOCUMENT_ROOT'] . '/wp_theme/clients_templates/' . str_replace(' ', '_', $_POST['title']));
$zip = new ZipArchive;
$zip->open('wordpress.zip', ZipArchive::CREATE);
foreach (glob(CLIENT_PATH . "/*.*") as $file) {
    echo $file . '<br>';
   $zip->addFile($file);
}
$zip->close();

现在,当我下载并解压缩该文件时,我的文件夹结构如下所示:

我想要的是将目录My_Theme移动到wordpress/wp-content/themes/

结果将是:wordpress/wp-content/themes/My_Theme(包括其中的所有文件和子目录)

我该怎么做?

您可以使用 http://php.net/manual/en/function.rename.php。那应该可以满足您的需求。

我回答我自己的问题,答案很简单:只需定义第二个参数: $zip->addFile($file, 'wordpress/wp-content/themes/' . $theme_name . '/' . $file_name);