php执行linux命令行小例——文件压缩, 前几天工作中,需要将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
; }}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执行linux命令的相关文章网上搜索有很多,推荐一篇:http://blog.csdn.net/yangjun07167/article/details/5603425
http://www.bkjia.com/phpjc/1128381.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1128381.htmltecharticlephp执行linux命令行小例——文件压缩, 前几天工作中,需要将3个txt文件,打包成*.zip down到本地 一开始,我和普通青年一样,想到用php内置...