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 生成随机验证码图片代码
Feb 08 PHP
php checkbox 取值详细说明
Aug 19 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
Jul 28 PHP
cakephp打印sql语句的方法
Feb 13 PHP
php运行时动态创建函数的方法
Mar 16 PHP
php约瑟夫问题解决关于处死犯人的算法
Mar 23 PHP
php编写的抽奖程序中奖概率算法
May 14 PHP
分享php多功能图片处理类
May 15 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
匹配任意字符的正则表达式写法
2010/04/29 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
Jquery中给animation加更多的运作效果实例
2013/09/05 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
Vue 2.0学习笔记之Vue中的computed属性
2017/10/16 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
Python字典,函数,全局变量代码解析
2017/12/18 Python
详解python中init方法和随机数方法
2019/03/13 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
市场营销专业毕业生求职信
2014/03/26 职场文书
2014年秘书工作总结
2014/11/25 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
MySQL 聚合函数排序
2021/07/16 MySQL