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 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
用PHP实现图象锐化代码
Jun 14 PHP
木翼下载系统中说明的PHP安全配置方法
Jun 16 PHP
PHP 程序员也要学会使用“异常”
Jun 16 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
Yii查询生成器(Query Builder)用法实例教程
Sep 04 PHP
PHP中使用SimpleXML检查XML文件结构实例
Jan 07 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php 输出json及显示json中的中文汉字详解及实例
Nov 09 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 PHP
PHP copy函数使用案例代码解析
Sep 01 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远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
浅谈php调用python文件
2019/03/29 PHP
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python绘制条形图方法代码详解
2017/12/19 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
Python读写压缩文件的方法
2020/07/30 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
市场营销专业推荐信
2013/11/03 职场文书
教学大赛获奖感言
2014/01/15 职场文书
中文教师求职信
2014/02/22 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
千与千寻观后感
2015/06/04 职场文书
常住证明范本
2015/06/23 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL