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

2015-01-24信息快讯网

一开始,我和普通青年一样,想到用PHP内置的 ZipArchive纠结的是环境上没安装zip扩展,想采用用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<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文件生成成功。
请离开include_once和require_once
实测在class的function中include的文件中非php的global全局环境
Php output buffering缓存及程序缓存深入解析
thinkphp 一个页面使用2次分页的实现方法
php的$_FILES的临时储存文件与回收机制实测过程
PHP 获取远程文件大小的3种解决方法
深入Nginx + PHP 缓存详解
PHP 获取文件权限函数介绍
php打开文件fopen函数的使用说明
如何利用PHP执行.SQL文件
php记录代码执行时间(实现代码)
PHP系统命令函数使用分析
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
浅析memcache启动以及telnet命令详解
解析php中如何直接执行SHELL
Memcached常用命令以及使用说明详解
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
解析Ubuntu下crontab命令的用法
hadoop中一些常用的命令介绍
PHP输出时间差函数代码
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
php对大文件进行读取操作的实现代码
php删除与复制文件夹及其文件夹下所有文件的实现代码
php删除文件夹及其文件夹下所有文件的函数代码
php定时删除文件夹下文件(清理缓存文件)
APACHE的AcceptPathInfo指令使用介绍
在windows服务器开启php的gd库phpinfo中未发现
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
整理的一些实用WordPress后台MySQL操作命令
Fine Uploader文件上传组件应用介绍
PDO版本问题 Invalid parameter number: no parameters were bound
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
windows下zendframework项目环境搭建(通过命令行配置)
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
php在服务器执行exec命令失败的解决方法
php preg_filter执行一个正则表达式搜索和替换
php文件怎么打开 如何执行php文件
如何使用Linux的Crontab定时执行PHP脚本的方法
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
©2014-2024 dbsqp.com