2017-01-27 18 views
7

Я использую следующий скрипт для перемещения файлов моего каталога (в данном случае 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 (включая все файлы и подкаталоги внутри)

Как я могу это сделать?

+0

Вы имеете в виду с кодом, не так ли? –

+0

Также. Вы разархивируете почтовый ящик вручную, чтобы процесс перемещения был сделан застегнутым или разархивированным? –

+0

@AsierPaz Мне не нужно разархивировать файл на веб-сервере. Пользователь может разархивировать его, когда он скачал его на своем компьютере. И да, каталог должен быть добавлен в конкретный каталог zip-архива с кодом, а не вручную. – Reza

ответ

4

Я ответил на мой собственный вопрос и ответ прост: Просто определить второй параметр: $zip->addFile($file, 'wordpress/wp-content/themes/' . $theme_name . '/' . $file_name);

0

Вы можете использовать http://php.net/manual/en/function.rename.php. Это должно делать то, что вы ищете.

+0

Почему 'rename()'? Это приведет к переименованию каталога. Не совсем то, что я хочу. – Reza

+0

@Reza rename («home/pomcanys/public_html/wp_theme/clients_templates/My_Theme», «wordpress/wp-content/themes/My_Theme»); – Profit

+0

Я пробовал использовать его. Результат выглядит не намного лучше, как вы можете видеть здесь: http://i.imgur.com/Di8phY7.png – Reza

Смежные вопросы