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 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
php 正则匹配函数体
Aug 25 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
php数据库密码的找回的步骤
Jan 12 PHP
无需重新编译php加入ftp扩展的解决方法
Feb 07 PHP
如何使用FireFox插件FirePHP调试PHP
Jul 23 PHP
php二维数组排序详解
Nov 06 PHP
php inc文件使用的风险和注意事项
Nov 12 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 PHP
实例分析PHP中PHPMailer发邮件
Dec 13 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
PHP生成月历代码
2007/06/14 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
详解Python编程中基本的数学计算使用
2016/02/04 Python
Python入门之后再看点什么好?
2018/03/05 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
python中yield的用法详解
2021/01/13 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
毕业生优秀推荐信
2013/11/26 职场文书
创业计划书如何吸引他人眼球
2014/01/10 职场文书
局火灾防控工作方案
2014/05/25 职场文书
心灵点滴观后感
2015/06/02 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang