php代码打包环境加密(php实现对文件压缩简单的方法)
类别:编程学习 浏览量:1014
时间:2021-10-14 00:21:42 php代码打包环境加密
php实现对文件压缩简单的方法压缩一个文件
我们将一个文件生成一个压缩包。
|
<?php $path = "c:/wamp/www/log.txt" ; $filename = "test.zip" ; $zip = new ZipArchive(); $zip ->open( $filename ,ZipArchive::CREATE); //打开压缩包 $zip ->addFile( $path , basename ( $path )); //向压缩包中添加文件 $zip ->close(); //关闭压缩包 |
上述代码将c:/wamp/www/log.txt文件压缩生成了test.zip,并保存在当前目录。
压缩多个文件
压缩多个文件,其实就是addFile执行多次,可以通过数组的遍历来实现。
|
<?php $fileList = array ( "c:/wamp/www/log.txt" , "c:/wamp/www/weixin.class.php" ); $filename = "test.zip" ; $zip = new ZipArchive(); $zip ->open( $filename ,ZipArchive::CREATE); //打开压缩包 foreach ( $fileList as $file ){ $zip ->addFile( $file , basename ( $file )); //向压缩包中添加文件 } $zip ->close(); //关闭压缩包 |
压缩一个目录
|
<?php function addFileToZip( $path , $zip ){ $handler =opendir( $path ); //打开当前文件夹由$path指定。 while (( $filename =readdir( $handler ))!==false){ if ( $filename != "." && $filename != ".." ){ //文件夹文件名字为'.'和‘..',不要对他们进行操作 if ( is_dir ( $path . "/" . $filename )){ // 如果读取的某个对象是文件夹,则递归 addFileToZip( $path . "/" . $filename , $zip ); } else { //将文件加入zip对象 $zip ->addFile( $path . "/" . $filename ); } } } @ closedir ( $path ); } $zip = new ZipArchive(); if ( $zip ->open( 'rsa.zip' , ZipArchive::OVERWRITE)=== TRUE){ addFileToZip( 'rsa/' , $zip ); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法 $zip ->close(); //关闭处理的zip文件 } |
压缩并下载zip包
我的时候,我们需要打包之后,提供下载,然后删除压缩包。
可以分为以下几步:
(1)判断给出的路径,是文件夹,还是文件。文件夹还需要遍历添加文件。
(2)设置相关文件头,并使用readfile函数提供下载。
(3)使用unlink函数删除压缩包。
|
<?php function addFileToZip( $path , $zip ){ $handler =opendir( $path ); //打开当前文件夹由$path指定。 while (( $filename =readdir( $handler ))!==false){ if ( $filename != "." && $filename != ".." ){ //文件夹文件名字为'.'和‘..',不要对他们进行操作 if ( is_dir ( $path . "/" . $filename )){ // 如果读取的某个对象是文件夹,则递归 addFileToZip( $path . "/" . $filename , $zip ); } else { //将文件加入zip对象 $zip ->addFile( $path . "/" . $filename ); } } } @ closedir ( $path ); } $zip = new ZipArchive(); if ( $zip ->open( 'rsa.zip' , ZipArchive::OVERWRITE)=== TRUE){ $path = 'rsa/' ; if ( is_dir ( $path )){ //给出文件夹,打包文件夹 addFileToZip( $path , $zip ); } else if ( is_array ( $path )){ //以数组形式给出文件路径 foreach ( $path as $file ){ $zip ->addFile( $file ); } } else { //只给出一个文件 $zip ->addFile( $path ); } $zip ->close(); //关闭处理的zip文件 } |
以上就是php如何实现对文件压缩的详细内容,感谢大家的学习和对开心学习网的支持。
您可能感兴趣
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- php建造者模式实例(PHP工厂模式、单例模式与注册树模式实例详解)
- php如何创建二维数组(PHP二维索引数组的遍历实例分析2种方式)
- thinkphp微信开发实例(ThinkPHP框架下微信支付功能总结踩坑笔记)
- php 实例代码解析(PHP反射学习入门示例)
- 宝塔linux面板php7.0安装不上(宝塔面板php.ini文件在哪里找)
- php封装api(PHP常用的类封装小结4个工具类)
- php 支付系统(php 实现银联商务H5支付的示例代码)
- phplaravel开发规范(Laravel解决nesting level错误和隐藏index.php的问题)
- php全栈之路教程(PHP进阶学习之依赖注入与Ioc容器详解)
- thinkphp中view视图的作用(Thinkphp5.0框架视图view的模板布局用法分析)
- phpsession登录功能(php实现session共享的实例方法)
- php经典算法大全(php菜单/评论数据递归分级算法的实现方法)
- php如何发邮件(PHP示例演示发送邮件给某个邮箱)
- phpstudy怎么配置php环境(使用phpStudy搭建php环境及安装各种php程序实战教程)
- phpstudy最佳配置(phpstudy如何开启openSSL?)
- 真牛 禹州将建成中等城市(禹州将建成中等城市)
- 被骂欺师灭祖,与郭德纲公开叫板,何云伟改名何沄伟,开始画画了(与郭德纲公开叫板)
- 相声转行影帝,被何晴抛弃,甩10年女友闪婚生子,刘威不靠谱情史(相声转行影帝被何晴抛弃)
- 岳云鹏不说相声,改行演员了 网友 快回来说相声(岳云鹏不说相声)
- 乔欣首演古装大女主,颜值演技双在线(乔欣首演古装大女主)
- 于正又推女性古装大剧 杨蓉乔欣演女配,两位女主成 重头戏(于正又推女性古装大剧)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9