当前位置: 移动技术网 > IT编程>开发语言>PHP > PHP调用Linux的命令行执行文件压缩命令

PHP调用Linux的命令行执行文件压缩命令

2019年04月14日  | 移动技术网IT编程  | 我要评论
前几天工作中,需要将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文件生成成功。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网