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程序员面试 切忌急功近利(更需要注重以后的发展)
Sep 01 PHP
php使HTML标签自动补全闭合函数代码
Oct 04 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
php魔术变量用法实例详解
Nov 13 PHP
PHP自带方法验证邮箱是否存在
Feb 01 PHP
PHP实现原比例生成缩略图的方法
Feb 03 PHP
php上传大文件设置方法
Apr 14 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
php生成二维码图片方法汇总
Dec 17 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
PHP文件后缀不强制为.php方法
Mar 31 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
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
js实现抽奖效果
2017/03/27 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
python3编写C/S网络程序实例教程
2014/08/25 Python
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
python保存数据到本地文件的方法
2018/06/23 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
Python使用type动态创建类操作示例
2020/02/29 Python
Python内置函数locals和globals对比
2020/04/28 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
美国社交购物市场:MassGenie
2019/02/18 全球购物
党委书记岗位职责
2013/11/24 职场文书
计算机专业自荐信
2014/05/24 职场文书
教师遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript
用Python可视化新冠疫情数据
2022/01/18 Python