PHP调用Linux的命令行执行文件压缩命令


Posted in PHP onJanuary 27, 2013

前几天工作中,需要将3个txt文件,打包成*.zip down到本地……
一开始,我和普通青年一样,想到用PHP内置的 ZipArchive,代码看起来应该是这样的:

/*拆分成3个txt文件 分别是wow_1.txt wow_2.txt 和 wow_3.txt*/ 
$zip=new ZipArchive(); 
$zipfile='./Exl_file/wow.zip'; 
if($zip->open($zipfile,ZIPARCHIVE::CREATE)===TRUE){ 
$zip->addFile('./Exl_file/wow_1.txt','wow_1.txt'); 
$zip->addFile('./Exl_file/wow_2.txt','wow_2.txt'); 
$zip->addFile('./Exl_file/wow_3.txt','wow_3.txt'); 
$zip->close(); 
//下载输出文件后删除相关文件 
}else{ 
echo "ZIP生成失败!"; 
}

可是纠结的是正式环境上没安装zip扩展,ZipArchive直接没法用,代码绝对比在上面装个扩展要来的快——用PHP调用Linux的命令行 ,执行压缩命令,OK,马上行动!
/*拆分成3个txt文件 分别是wow_1.txt wow_2.txt 和 wow_3.txt全部放到 Exl_file 目录下*/ 
$outputs=array(); 
/*用php的exec执行Linux命令 括号里的字符串就是你在Linux命令窗口里敲的命令; 
第二个参数是linux执行该命令后返回的结果数组; 
linux执行返回的每一条结果依次存入该数组 
第三个参数是结果,如果执行成功,则Linux返回结果值为0,如果执行失败,则结果值不为0 
*/ 
exec("zip ./Exl_file/wow.zip ./Exl_file/wow_1.txt ./Exl_file/wow_2.txt ./Exl_file/wow_3.txt",$outputs,$rc); 
if($rc!=0){ 
foreach ($outputs as $ko=>$vo){ 
echo "$vo<br/>"; 
} 
}else{ 
$zipfile='./Exl_file/wow.zip'; 
//文件下载输出后删除相关文件 
} 
}

你可以把if($rc!=0)改成if(1==1)查看Linux执行命令返回的结果行,如下图:
adding: Exl_file/wow_1.txt (deflated 96%) 
adding: Exl_file/wow_2.txt (deflated 97%) 
adding: Exl_file/wow_3.txt (deflated 97%)

可以看到执行返回的信息全部输入到了 $outputs 数组中,*.zip文件生成成功。
PHP 相关文章推荐
php的curl实现get和post的代码
Aug 23 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
php对数组排序的简单实例
Dec 25 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
php实现telnet功能示例
Apr 08 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 PHP
PHP的命令行命令使用指南
Aug 18 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
laravel 数据验证规则详解
Oct 23 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 #PHP
用php来改写404错误页让你的页面更友好
Jan 24 #PHP
php对大文件进行读取操作的实现代码
Jan 23 #PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 #PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 #PHP
php定时删除文件夹下文件(清理缓存文件)
Jan 23 #PHP
PHP关联数组的10个操作技巧
Jan 21 #PHP
You might like
Terran兵种对照表
2020/03/14 星际争霸
那些年一起学习的PHP(三)
2012/03/22 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
2015/11/11 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
PHP编写简单的App接口
2016/08/28 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
Python实现的数据结构与算法之链表详解
2015/04/22 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
详解python的ORM中Pony用法
2018/02/09 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
2018/04/26 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
利用python实现逐步回归
2020/02/24 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
战友聚会邀请函
2014/01/18 职场文书
小学生美德少年事迹
2014/02/02 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
python实现Nao机器人的单目测距
2021/09/04 Python