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

时间:2017-01-27 12:37:23

标签: php zip ziparchive

我使用以下脚本将我的目录(在本例中为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();

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

enter image description here

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

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

我该怎么做?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

您可以使用http://php.net/manual/en/function.rename.php。那应该做你想要的。