-
php 复制文件夹并压缩到最小_php实现对文件压缩简单的方法
2021-01-14 15:28:35压缩一个文件我们将一个文件生成一个压缩包。$path = "c:/wamp/www/log.txt";$filename = "test.zip";$zip = new ZipArchive();$zip->open($filename,ZipArchive::CREATE); //打开压缩包$zip->addFile($path,...压缩一个文件
我们将一个文件生成一个压缩包。
$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执行多次,可以通过数组的遍历来实现。
$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(); //关闭压缩包
压缩一个目录
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函数删除压缩包。
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如何实现对文件压缩的详细内容,感谢大家的学习和对脚本之家的支持。
-
文件夹怎么打包压缩?压缩包太大如何缩小?
2021-04-01 16:22:34那么就可以用打包压缩的方式使用压缩工具(https://www.yasuotu.com/batchs)进行压缩,在线就能够快速的将图片文件压缩到最小,省时又省力,具体操作步骤如下: 1、打开压缩图网站,点击选择文件,上传你需要压缩的...我们在工作和学习中都会保存大量的图片,随着时间的推移我们电脑里的图片文件越来越多,占的电脑内存也越来越大,有些图片文件不能删除,该怎么处理呢?那么就可以用打包压缩的方式使用压缩工具(https://www.yasuotu.com/batchs)进行压缩,在线就能够快速的将图片文件压缩到最小,省时又省力,具体操作步骤如下:
1、打开压缩图网站,点击选择文件,上传你需要压缩的文件压缩包(注:压缩包的格式要是zip格式。)
2、选择压缩等级,压缩等级越小压缩后的文件体积越小,选择好以后点击开始上传并压缩。
3、压缩成功以后,点击下载文件即可。
对于图片存储过多的小伙伴,可以使用以上我推荐的方法来压缩图片文件。压缩图网站还支持JPG、PNG、gif、证件照等格式的压缩,希望以上内容能够为大家提供帮助。
-
ZipRepairPro(压缩包修复工具)v4.2.0绿色免费版
2019-07-31 01:59:17ZipRepair Pro是一款简单易用的zip文件修复工具,压缩包修复工具完美...Zip Repair Pro 可以修复你损坏的zip 压缩文件及自解压格式文件,让你的损失减少到最小。它能检查和修复CRC 错误,并具有批量修复的功能,新版本 -
压缩pdf大小_职场必备技巧:如何压缩pdf文件大小?
2021-01-11 21:42:06平时在工作的时候,经常要接触很多PDF格式的文件,有时候PDF文件太大,发送失败怎么办呢?如何将一个大文件通过压缩成一个小文件上传到系统中?...方法二:压缩软件进行压缩如果想把PDF文件压缩到最小,...平时在工作的时候,经常要接触很多PDF格式的文件,有时候PDF文件太大,发送失败怎么办呢?如何将一个大文件通过压缩成一个小文件上传到系统中?相信这个问题大家也都遇到过,那么今天小编教大家,如果快速压缩PDF文件大小。
方法一:直接压缩
我们要发送文件夹的时候,经常会先把文件处理成压缩包再进行发送,其实PDF文件也是可以按照这个方法直接进行压缩的哦!
方法二:压缩软件进行压缩
如果想把PDF文件压缩到最小,或者想批量压缩PDF文件,那么嗨格式PDF转换器是你的不二之选!选择【PDF的其他操作】,点击【PDF压缩】功能。
嗨格式PDF转换器dl-next.aunbox.cn然后接着开始上传我们的PDF大文件,这时PDF转换器的压缩等级是默认为普通压缩的。如果要需要自己选择文件的压缩大小,就得选择高级压缩,再拖动文件后的滑块即可。接着点击【开始压缩】开始压缩,稍等几秒就可以压缩成功了。
方法三:在线压缩PDF文件
步骤一:在浏览器中搜索嗨格式PDF在线工具,找到并且打开这个在线PDF压缩的网站,点击页面中的PDF压缩。
步骤二:添加要进行压缩的PDF文件,点击或者拖拽将要压缩的PDF文件添加进指定的操作界面中。
步骤三:选择一个合适的压缩选项,选择好之后点击开始压缩的按钮,系统就会对添加的PDF文件进行压缩。
好啦~以上就是小编平时常用的三种PDF压缩的方法,不知道你学会了吗?感兴趣的话可以自己试试看!如此简单好用的压缩方法,记得跟小伙伴一起分享哦!
-
_一分钟了解Linux压缩工具
2020-10-21 22:12:47compress gzip bzip2 xz zip tar cpio一、压缩、解压工具 用法压缩工具压缩后压缩包格式解压缩(默认不保留源文件)保留原文件压缩-c :将压缩结果打印到屏幕上保留压缩文件解压*zcat :将解压结果打印到屏幕上强制...compress gzip bzip2 xz
zip tar cpio
一、压缩、解压工具
用法
压缩
工具
压缩后
压缩包格式
解压缩
(默认不保留源文件)
保留原文件压缩
-c :将压缩结果打印到屏幕上
保留压缩文件解压
*zcat :将解压结果打印到屏幕上
强制压缩(默认不压缩硬链接)
显示详细过程
压缩比
-#(数字越大,压缩比越高,速度越慢
文件越小)
compress
(压缩比最小,文件最大)
.Z
-d
uncompress
-c > X
(>相当于创建文件,权限改变)
zcat X.Z > X
(>相当于创建文件,权限改变)
-f
-v
无
gzip
.gz
-d
gunzip
-c > X
zcat X.gz > X
-f
-v
-1 --fast
-6 (默认)
-9 --best
bzip2(压缩比最大,文件最小)
.bz2
-d
bunzip
-c > X
-k (权限不变)
bzcat X.gz > X
-k
-f
-v
-1 --fast
-9 --best
(默认)
xz
.xz
-d
-c > X
-k(权限不变)
xzcat X.gz > X
-k
-f
-v
-1 --fast
-6 (默认)
-9 --best
compress/uncompress
压缩文件,会删除原来文件,生成压缩文件
compress [-dfvcVr] [-b maxbits] [file ...]
-d: 解压缩,相当于uncompress
-c: 结果输出至标准输出,不删除原文件
-v: 显示详情
uncompress :解压缩
zcatfile.Z>file查看文件不解缩
gzip/gunzip
压缩文件,会删除原来文件,生成压缩文件
gzip[OPTION]... FILE ...
-d:解压缩,相当于gunzip
-c:结果输出至标准输出,保留原文件不改变
-#:1-9,指定压缩比,值越大压缩比越大
zcat:不显式解压缩的前提下查看文本文件内容
压缩带特殊符号的文件,即:-f -f1 -f2
[root@centos17data]#ls
bigfile.Z f -f -f1 f1.txt.gz -f2 m.gz
[root@centos17data]#gzip -- -f1 -f2
[root@centos17data]#ls
bigfile.Z f -f -f1.gz f1.txt.gz -f2.gz m.gz
bzip2/bunzip2/bzcat
bzip2 [OPTION]... FILE ...
-k:keep, 保留原文件
-d:解压缩
-#:1-9,压缩比,默认为9
bzcat:不显式解压缩的前提下查看文本文件内容
xz/unxz/xzcat
xz[OPTION]... FILE ...
-k: keep, 保留原文件
-d:解压缩
-#:1-9,压缩比,默认为6
unxz file.xz 解压缩
xzcat: 不显式解压缩的前提下查看文本文件内容
zip/unzip
打包压缩
zip –r
/backup/sysconfig
/etc/sysconfig/
解包解压缩
unzip sysconfig.zip
cat
/var/log/messages
| zip messages -
unzip -p message > message
tar工具
-f 包名,所有用法都要和-f组合
-c -f 创建包名字 原文件(可以指定多个)
-t -f 包名字 显示包中的文件名
-tv -f 详细显示包中的文件名
-r -f 包名字 新文件名(可以指定多个),向包里放指定文件
--delete -f 包名字 被删除的文件名(可以指定多个),从包中删除指定文件
-x -f 包名字 解出所有的文件到当前目录,把包中所有文件移出,解压包
-x -f 包名字 文件名 解所指定的文件到当前目录,从包中移出指定文件
-C 解包到指定目录
-v
详细信息
-Jcf 创建包的名字(.tar.xz) 原文件(可以指定多个) 打包并用xz压缩
-jcf 创建包的名字(.tar.bz2) 原文件(可以指定多个) 打包并用bzip压缩
-zcf 创建包的名字(.tar.gz) 原文件(可以指定多个) 打包并用gzip压缩
-T 指定个列表,包含需要被打包的文件,以换行符为间隔
-X 指定个排除列表,以换行符为间隔
-exclude 排除文件
1
tar
zcvf/root/a3.tgz --exclude=/app/host1
--exclude=/app/host2
/app
split::分割一个文件为多个文件
分割大的tar 文件为多份小文件
split
–b Size –d
tar-file-name prefix-name
split
-b 1M –dmybackup.tgz mybackup-parts
split
-b 1M mybackup.tgz mybackup-parts
合并:
1
cat
mybackup-parts* > mybackup.tar.gz
总结:compress gzip bzip2都只能压缩文件,不能压缩目录,而tar可以打包多个目录并进行压缩。
cpio(不常用)
功能:复制文件从或到归档
cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件
cpio[选项] > 文件名或者设备名
cpio[选项] < 文件名或者设备名
选项
-o 将文件拷贝打包成文件或者将文件输出到设备上
-O filename输出到指定的归档文件名
-A向已存在的归档文件中追加文件
-i解包,将打包文件解压或将设备上的备份还原到系统
-I filename对指定的归档文件名解压
-t预览,查看文件内容或者输出到设备上的文件内容
-F filename使用指定的文件名替代标准输入或输出
-d 解包生成目录,在cpio还原时,自动的建立目录
-v
显示打包过程中的文件名称
示例:
将etc目录备份:
find
./etc
-print |cpio -ov > bak.cpio
将/data内容追加bak.cpio
find
/data
| cpio -oA -F bak.cpio
内容预览
cpio -tv< etc.cpio
解包文件
cpio -idv< etc.cpio
-
Linux基本入门-文件打包与解压缩
2019-03-06 00:16:05zip压缩打包 使用zip打包文件夹 ...设置压缩级别1-9(1最小,9最大) zip -r -9 shiyanlou.zip ~/Desktop 创建加密zip包 zip -r -e shiyanlou.zip ~/Desktop 使用unzip命令解压缩zip压缩包 将文件解压到... -
rar压缩软件.rar
2016-02-13 10:52:44rarfiles.lst 包含一个用户定义的文件列表,告诉 RAR 添加文件到固实压缩文件时的顺 序。它可以包含文件名通配符和指定项目 -$default。默认项目定义了这个文件中与 其他项目不相符时的顺序清单位置。 注释字符是... -
史上超高压缩软件2009
2009-09-04 14:46:16(5)把已压缩的文件myfiles.uda解压缩到c:\windows中: uda x myfiles c:\windows (6)列出已压缩的文件my backup.uda中包含的文件: uda l "my backup" (7)把已压缩的文件mybak.uda转化成自解压文件mybak.exe: uda c ... -
中文简体压缩软件RAR 6.0
2006-02-28 10:01:02rarfiles.lst 包含用户定义的文件列表,告诉RAR添加文件到固实压缩文件时的顺序。 它可以包含文件名通配符和指定项目-$default。默认项目定义了这个文件中与其他 项目不相符时的顺序清单位置。 注释字符是 ';'.... -
linux 应用编程————二、文件指针,文件共享,标准IO 介绍
2021-01-01 19:25:37一、linux 系统如何管理文件 1、 硬盘中的静态文件 和 inode(i节点) ...压缩包压缩文件夹。 ----- 本质就是将许多小文件变成一个大文件,然后形成一个压缩文件。 文件a和文件b就被放到了一个扇区。 问题: -
winrar备份技巧
2010-12-13 22:42:47-m5使用最大压缩,-m0最小 -k锁定压缩文件,使压缩文件不可修改 -t测试压缩文件 -ag[YYYY-MM-DD-HH-MM-SS]添加时间到标题 D:\FlashGet\backup\压缩包保存路径 D:\FlashGet\Default.jcd源文件路径及文件名称 ... -
WinRAR V3.90 beta 1 简体中文版.exe
2019-08-29 23:36:08如果你使用“解压到”关联菜单命令解压一个压缩文件、根文件夹仅包含一个文件夹并且没有文件, 则该选项将从解压路径中删除基于文件夹的多余压缩文件名称. 4. 在“解压路径和选项”对话框中的修改: a) “新建... -
8uftp安装下载
2019-03-31 14:48:15也可以在空间上压缩后直接下载压缩包。8UFTP工具包括客户端工具,和智能扩展服务端工具。支持多线程上传文件,支持断点续传。支持在线解压缩。配合8UFTP服务端使用,有效防止FTP被人暴力破解。防CC攻击。 8UFtp的... -
winrar 命令行
2006-06-28 14:51:00*****************************************************c:/progra~1/winrar/winrar a -m5 -k -t -ag[YYYY-MM-DD-HH-MM-SS] D:/a- e:/*.txta添加文件到压缩包。 -m5使用最大压缩,-m0最小 -k锁定压缩文件,使压缩... -
Hadoop学习笔记_2:环境搭建(JDK+Hadoop)
2020-07-05 01:29:48CentOS 7 最小化安装后的注意事项及一些必备组件的安装 CentOS7 配置静态IP-1 CentOS7 配置静态IP-2 VMware如何克隆已安装的虚拟机VMware克隆虚拟机 XShell上传文件到Linux服务器上-安装lrzsz 在opt,... -
Total commander 7.02a
2011-07-04 12:30:57另外一种最小化操作可以把Total Commander缩到右小角,她的图标还在显示当前的进度,实在是很方便! 4. 用资源治理器从光盘上复制文件会把只读属性也一同复制,在硬盘上要修改的话还要去掉只读,假如是直接执行的... -
WinRAR_4.0.exe
2011-02-04 11:34:33rarfiles.lst 包含一个用户定义的文件列表,告诉 RAR 添加文件到固实压缩文件时的顺 序。它可以包含文件名通配符和指定项目 -$default。默认项目定义了这个文件中与 其他项目不相符时的顺序清单位置。 注释字符是... -
最新 3.93烈火破解 winRaR
2010-06-23 23:18:05如果你使用“解压到”关联菜单命令解压一个压缩文件、根文件夹仅包含一个文件夹 并且没有文件, 则该选项将从解压路径中删除基于文件夹的多余压缩文件名称。 4. 在“解压路径和选项”对话框中的修改: a) “新建... -
Java经典编程300例(code)
2013-01-09 10:26:53实例160 将压缩包解压到指定文件夹 223 实例161 压缩所有子文件夹 225 实例162 深层文件夹压缩包的释放 226 实例163 解决压缩包中文乱码 227 实例164 Apache实现文件解压缩 228 实例165 把窗体压缩成ZIP文件 229 ... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part1 高清完整PDF版
2016-06-13 15:46:48PDF格式扫描版,共压缩为5部分,这是第1部分。 内容简介 本系列图书包括第I卷、第II卷共计1200个例子,本文档是第I卷,共计603个例子。本书以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part4 高清完整PDF版
2016-06-13 16:13:13PDF格式扫描版,共压缩为5部分,这是第4部分。 内容简介 本系列图书包括第I卷、第II卷共计1200个例子,本文档是第I卷,共计603个例子。本书以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part2 高清完整PDF版
2016-06-13 15:53:27PDF格式扫描版,共压缩为5部分,这是第2部分。 内容简介 本系列图书包括第I卷、第II卷共计1200个例子,本文档是第I卷,共计603个例子。本书以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part3 高清完整PDF版
2016-06-13 16:11:24PDF格式扫描版,共压缩为5部分,这是第3部分。 内容简介 本系列图书包括第I卷、第II卷共计1200个例子,本文档是第I卷,共计603个例子。本书以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part5 高清完整PDF版
2016-06-13 16:17:38PDF格式扫描版,共压缩为5部分,这是第5部分。 内容简介 本系列图书包括第I卷、第II卷共计1200个例子,本文档是第I卷,共计603个例子。本书以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了... -
winrar3.7 Beta8
2007-07-07 00:17:02如果 WinRAR 被最小化到状态栏并且鼠标移动到它的图标上, WinRAR 显示关于当前 操作进度的消息。在以前的版本中它仅包括完成的百分比, 现在它也包含剩余时间 的信息。 <br> 13. 当对最新创建的 RAR 卷... -
晨风电脑动态屏保 v2.33.zip
2019-07-14 07:25:30使用方法:首先把下载到的压缩包解压缩到某一个文件夹下,然后双击“screen.exe”安装,软件安装完成后会自动运行,默认密码为空,如果你希望设置密码保护你的电脑,请在弹出的登录窗口上选中“修改密码”,设置你... -
-
屏幕录象专家6.0
2008-06-20 00:46:01高度无损压缩,制作出最小的EXE录像 22.简单后期编辑功能,支持EXE截取、EXE合成、EXE转成LX、LX截取、LX合成等功能 23.EXE播放时可以定位到任意帧 <br>《屏幕录像专家 V6.0 Build20061028》 主要... -
Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3
2016-06-12 11:39:31全书压缩打包成4部分,这是第3部分 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介 《Java开发实战1200例》分为I... -
Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part1
2016-06-12 11:34:39全书压缩打包成4部分,这是第1部分 注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。 内容简介 《Java开发实战1200例》分为I...