使用压缩文件可以节省磁盘空间;压缩文件较小,便于网络传输php 压缩文件,效率高. 本文向您介绍了如何使用PHP创建zip压缩文件,希望对大家有所帮助.
PHP中有一个ZipArchive类php 压缩文件,可以很容易地用于创建zip文件. 以下示例显示了如何在PHP中创建一个zip文件. [推荐的视频教程: PHP教程]
创建一个新的zip文件
以下代码将创建一个新的zip文件(test_new.zip)并向其中添加一些文件.
$zip = new ZipArchive;
if ($zip->open(test_new.zip, ZipArchive::CREATE) === TRUE)
{
// 将文件添加到zip文件
$zip->addFile(test.txt);
$zip->addFile(test.pdf);
// 将random.txt文件添加到zip并将其重命名为newfile.txt
$zip->addFile(random.txt, newfile.txt);
// 将有指定文本的new.txt文件添加到zip文件中
$zip->addFromString(new.txt, 要添加到new.txt文件中的文本);
// 关闭zip文件
$zip->close();
}
?>
代码说明:
第2行: 创建一个ZipArchive类的对象
第3行: 用于创建和打开名为test_new.zip的文件,以便我们可以向其中添加文件. 标志ZipArchive :: CREATE指定我们要创建一个新的zip文件
第6和7行: 用于将文件添加到zip文件中.
第10行: 用于将名为random.txt的文件添加到zip文件中,并将其重命名为zip文件中的newfile.txt.
第13行: 用于添加新文件new.txt,该文件的内容为“要添加到new.txt文件的文本”.
第16行: 关闭并保存对zip文件的更改.
注意: 使用文件的相对路径时,有时可能会出现问题. 如果路径有任何问题,那么我们也可以使用文件的绝对路径
覆盖现有的zip文件
如果要覆盖现有的zip文件,我们可以使用类似于以下代码. 标记ZipArchive :: OVERWRITE指定覆盖现有的zip文件.
$zip = new ZipArchive;
if ($zip->open(test_overwrite.zip, ZipArchive::OVERWRITE) === TRUE)
{
// 将文件添加到zip文件
$zip->addFile(test.txt);
$zip->addFile(test.pdf);
// 关闭zip文件
$zip->close();
}
?>
代码说明
此代码将创建一个文件test_overwrite.zip,如果该文件已经存在,则该文件将被新文件覆盖.
创建一个新的zip文件并将其添加到指定的文件夹中
$zip = new ZipArchive;
if ($zip->open(test_folder.zip, ZipArchive::CREATE) === TRUE)
{
// 将文件添加到zip文件中的demo_folder文件夹内
$zip->addFile(text.txt, demo_folder/test.txt);
$zip->addFile(test.pdf, demo_folder/test.pdf);
// 将random.txt文件添加到zip文件中的demo_folder文件夹内,并重命名为newfile.txt
$zip->addFile(random.txt, demo_folder/newfile.txt);
// 将有指定内容的new.txt添加到zip文件中的demo_folder文件夹
$zip->addFromString(demo_folder/new.txt, 要添加到new.txt文件中的文本);
// 关闭zip文件
$zip->close();
}
?>
代码说明
上面的代码会将zip文件中的不同文件添加到demo_folder文件夹中
addfile函数的第二个参数可用于将文件存储在新文件夹中
addFromString函数中的第一个参数可用于将文件存储在新文件夹中
创建一个新的zip文件并将其添加到其他文件夹
$zip = new ZipArchive;
if ($zip->open(test_folder_change.zip, ZipArchive::CREATE) === TRUE)
{
// 将文件添加到zip文件
$zip->addFile(text.txt, demo_folder/test.txt);
$zip->addFile(test.pdf, demo_folder1/test.pdf);
// 关闭zip文件
$zip->close();
}
?>
代码说明
我们将test.txt文件存储在demo_folder文件夹的zip文件中,并将test.pdf文件存储在demo_folder1文件夹的
创建一个包含目录中所有文件的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();
}
?>
代码说明
第5-16行: 打开目录并创建一个包含该目录中所有文件的zip文件
第5行: 打开目录
第8行: 获取目录中每个文件的名称
第10行: 跳过“. ”和“ ..”以及其他任何目录
第12行: 将文件添加到zip文件中
第15行: 关闭目录
第18行: 关闭zip文件
创建一个包含多个目录中所有文件的zip文件
以下代码将这些目录中的不同文件夹和文件添加到zip文件中
$zip = new ZipArchive;
if ($zip->open(test_files_dirs.zip, ZipArchive::OVERWRITE) === TRUE)
{
// 添加 directory1
if ($handle = opendir(demo_folder/directory1/))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile(demo_folder/directory1/ . $entry);
}
}
closedir($handle);
}
// 添加 directory2
if ($handle = opendir(demo_folder/directory2/))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile(demo_folder/directory2/ . $entry);
}
}
closedir($handle);
}
// 添加 directory3
if ($handle = opendir(demo_folder/directory3/))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile(demo_folder/directory3/ . $entry);
}
}
closedir($handle);
}
$zip->close();
}
?>
代码说明
第6-42行: 将目录directory1,directory2和directory3中的所有文件添加到zip文件中的相应目录中.
以上是本文的全部内容,希望对大家有所帮助. 有关更多令人兴奋的内容,您可以关注php Chinese network相关的教程专栏! ! !
上面是有关如何使用PHP创建zip压缩文件的详细信息. 有关更多信息,请关注php中文网上的其他相关文章!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-175624-1.html