创建一个新的压缩文件
$zip = new ZipArchive;
if ($zip->open('test_new.zip', ZipArchive::CREATE) === TRUE)
{
$zip->addFile('test.txt');
$zip->addFile('test.pdf');
$zip->addFile('random.txt', 'newfile.txt');
$zip->addFromString('new.txt', 'text to be added to the new.txt file');
$zip->close();
}
覆盖现有的zip文件
(使用OVERWRITE时,该文件必须已经存在。如果它尚不存在,则操作将失败。)
$zip = new ZipArchive;
if ($zip->open('test_overwrite.zip', ZipArchive::OVERWRITE) === TRUE)
{
$zip->addFile('test.txt');
$zip->addFile('test.pdf');
$zip->close();
}
创建一个新的压缩文件,并将文件添加到一个文件夹内
$zip = new ZipArchive;
if ($zip->open('test_folder.zip', ZipArchive::CREATE) === TRUE)
{
$zip->addFile('text.txt', 'demo_folder/test.txt');
$zip->addFile('test.pdf', 'demo_folder/test.pdf');
$zip->addFile('random.txt', 'demo_folder/newfile.txt');
$zip->addFromString('demo_folder/new.txt', 'text to be added to the new.txt file');
$zip->close();
}
创建一个新的zip文件,并将文件移动到不同的文件夹中
$zip = new ZipArchive;
if ($zip->open('test_folder_change.zip', ZipArchive::CREATE) === TRUE)
{
$zip->addFile('text.txt', 'demo_folder/test.txt');
$zip->addFile('test.pdf', 'demo_folder1/test.pdf');
$zip->close();
}
创建一个包含目录中所有文件的zip文件
$zip = new ZipArchive;
if ($zip->open('test_dir.zip', ZipArchive::OVERWRITE) === TRUE)
{
if ($handle = opendir('demo_folder'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != ".." && !is_dir('demo_folder/' . $entry))
{
$zip->addFile('demo_folder/' . $entry);
}
}
closedir($handle);
}
$zip->close();
}
将多个文件和目录添加到一个zip文件中
$zip = new ZipArchive;
if ($zip->open('test_files_dirs.zip', ZipArchive::OVERWRITE) === TRUE)
{
if ($handle = opendir('demo_folder/directory1/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('demo_folder/directory1/' . $entry);
}
}
closedir($handle);
}
if ($handle = opendir('demo_folder/directory2/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('demo_folder/directory2/' . $entry);
}
}
closedir($handle);
}
if ($handle = opendir('demo_folder/directory3/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('demo_folder/directory3/' . $entry);
}
}
closedir($handle);
}
$zip->addFile('demo_folder/index.txt');
$zip->close();
}
来源: https://www.virendrachandak.com/techtalk/how-to-create-a-zip-file-using-php/