Как создать архив, используя только php?

Пользователь

от jedidiah.brown , в категории: PHP , 2 года назад

Как создать архив, используя только php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от elda , 2 года назад

@jedidiah.brown 

В PHP нет встроенных функций для создания архивов, но вы можете использовать внешние библиотеки, такие как "ZipArchive". Эта библиотека позволяет создавать, редактировать и распаковывать ZIP-архивы.


Следующий код демонстрирует, как использовать "ZipArchive" для создания архива:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<?php

$zip = new ZipArchive();
$filename = "./test112.zip";

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
    exit("Невозможно открыть <$filename>
");
}

$zip->addFile("test112/testfile112.txt","testfile112.txt");
$zip->close();

echo "Архив успешно создан.";

?>


В этом примере мы создаем экземпляр класса ZipArchive, затем открываем файл с именем "test112.zip" для записи. Затем мы добавляем файл "test112/testfile112.txt" в архив и закрываем его. Наконец, мы выводим сообщение "Архив успешно создан".

Пользователь

от lilla.herman , год назад

@jedidiah.brown 

Однако, помимо создания ZIP-архивов, с использованием PHP также можно создавать архивы в других форматах, например, tar или gz. Вот примеры создания архивов в этих форматах:

  1. Создание tar-архива:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
$files = array('file1.txt', 'file2.txt', 'file3.txt');
$archiveName = 'archive.tar';

$archive = new PharData($archiveName);
foreach ($files as $file) {
    $archive->addFile($file);
}

$archive->compress(Phar::TAR);

echo "Архив успешно создан.";
?>


  1. Создание gz-архива:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
$files = array('file1.txt', 'file2.txt', 'file3.txt');
$archiveName = 'archive.tar.gz';

$archive = new PharData($archiveName);
foreach ($files as $file) {
    $archive->addFile($file);
}

$archive->compress(Phar::GZ);

echo "Архив успешно создан.";
?>


В обоих примерах мы используем класс PharData, который позволяет создавать и работать с архивами различных форматов. Мы добавляем файлы в архив с помощью метода addFile, и затем сжимаем архив с помощью метода compress.


Пожалуйста, обратите внимание, что для использования класса PharData вам может потребоваться изменить конфигурацию PHP, чтобы разрешить операции над файлами вне директории open_basedir.