使用压缩文件可以节省磁盘空间;压缩文件较小,便于网络传输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

php 建立zip压缩文件,如何使用PHP创建zip压缩文件相关推荐

  1. 如何批量在文件夹中建立php,怎么批量创建文件夹_一次性创建多个文件夹方法_一聚教程网...

    相信大家在平时的工作或是生活中,经常会遇到需要创建多个文件夹的问题,那么对于这种一次性创建多个文件夹的问题怎么解决呢?这里文章就给大家具体介绍下批量创建多个文件夹的问题,感兴趣的一起来了解下. 日常工 ...

  2. java添加zip并下载,java - 使用java创建zip并使其可下载。 - SO中文参考 - www.soinside.com...

    我有一个程序,我想用它来创建一个位于目录中的文件的压缩文件. 该程序运行,但在chrome中,它无法下载,说网络错误. 在Mozilla中,它说Ut0ij4ld.ZIP.part无法保存,因为源文件无 ...

  3. php 创建文件编码,php fopen创建utf8编码文件例子

    如果我们直接使用fopen创建会发现文件编码都不是uft-8的了,那么如果要创建uft8文件我们需要进行一些技术处理,下面我搜索了网络上一些通用方法,下面一起来看看吧. 使用PHP创建编码格式为utf ...

  4. python创建一个txt文件-python中如何创建一个txt文件

    python中有一个内置函数open(),该函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写.如果以只写模式打开一个文件,那么该函数会在文件不存在时创建一个文件. 语法: ...

  5. 快捷键创建文件夹_一键创建复杂的文件夹结构

    快捷键创建文件夹 为什么要继续阅读或不继续阅读本文: (Why you should proceed or not proceed reading this article:) Even if the ...

  6. python怎么创建txt文件夹_python怎么创建一个txt文件/python创建文件夹基础教程

    python怎么创建一个txt文件 python怎么创建一个txt文方法. 如考: 1.首先内置的空闲编辑器进行编辑(单击并选择copy),如下图所示. 2.您可以下载记事本和其他编辑软件,以支持多种 ...

  7. java创建一个大文件,java - 用Java创建包含大文件的目录 - 堆栈内存溢出

    他们谈论将zip文件视为文件系统,并通过这种方式提供了递归压缩文件和文件夹的密钥,如您在链接中提到的示例中所看到的,将被视为文件系统,可以使用java.nio进行访问(甚至我都不知道!). 此外,您可 ...

  8. linux 下文件夹无法删除(报:Device or resource busy),然后进入文件夹也无法创建新的文件夹(Permission denied)

    首先,看下问题: 在这之前,我执行了命令: sudo chmod -R 777 localmnt/ sudo chown -R ymengkai:mts localmnt/ 当我改变了他的权限之后,我 ...

  9. Mysql安装文件夹下找不到my.ini文件怎么办?如何创建my.ini文件

    在C盘搜索 .ini文件,如果找到文件类型为配置设置的文件 复制到 Mysql文件夹下 修改文件名为 my.ini 完成

最新文章

  1. 关于Verilog 中的for语句的探讨
  2. 我的10年富士康故事
  3. 工作不能混日子,给自己留言
  4. android jni java call c字符串乱码,JNI系列入门之C语言中文字符串乱码问题
  5. 【转载】三角形测试用例
  6. 笔记︱精准营销解决方案以及营销组合评估
  7. RGB格式详解(二)--索引格式
  8. sql 获取当前日期的季度,年份,月份等日期部分
  9. Matlab实现身份证号码快速识别
  10. 使用 String[] values = request.getParameterValues(key);出现的问题 ,Ajax Post 提交数组参数后台无法接收
  11. 商户开通微信支付详细流程文档
  12. Adobe(R) Flash(R) Player 安装失败.有关故障排除的提示,请访问 httpwww.adobe.comgotn_19166_cn
  13. 米兔机器人恐龙拼图手册_米兔积木机器人(多形态组合、自平衡系统、App联动)...
  14. 内核网络数据结构-SKB
  15. JetBrain的哪款产品能够编写C++和C的代码啊?
  16. 初创企业选择阿里云服务器与传统自建服务器的对比与选择
  17. 四川大学考研真题 || 信息资源管理导论(二)
  18. springboot源码 红色J_通达信精准指标,鱼网兜鱼3.0终结版主图指标,源码免费分享...
  19. Vue项目集成Markdown标记语言编辑器(MavonEditor)
  20. 2011年6月20日

热门文章

  1. 什么是 web 框架?
  2. 谷歌验证码 reCaptcha V2 图像识别开发接口
  3. Windows11打开此电脑,没有视频、图片等文件夹,解决方法
  4. Google Play开发者账号注册 信用卡绑定心得
  5. python入门学习记录之pygame实现简单动画游戏:大球吃小球
  6. python安装docx库_怎么下载python-docx模块
  7. B轮融资逾2亿高瓴创投领投,最懂金融的RPA厂商金智维有何不凡之处?
  8. 嵌入式Linux下CAN接口调试
  9. 数据类型,重载,传参,初始化及类的加载
  10. notes邮箱备份邮件到本地