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文件生成成功。

关于PHP执行Linux命令的相关文章网上搜索有很多,推荐一篇:http://blog.csdn.net/yangjun07167/article/details/5603425

时间: 2024-10-03 15:01:21

PHP执行Linux命令行小例——文件压缩的相关文章

你值得了解的 10 个有趣的 Linux 命令行小技巧

摘要: 我非常喜欢使用命令,因为它们比 GUI(图形用户界面)应用程序对 Linux 系统提供更多的控制,因此,我一直在寻找一些有趣的方法让 Linux 的操作变得简单好玩,主要是基于终端操作. 当我们发现使用 Linux 的新技巧时,尤其是像我这样的命令行极客,我们总会感到非常来劲. 我非常喜欢使用命令,因为它们比 GUI(图形用户界面)应用程序对 Linux 系统提供更多的控制,因此,我一直在寻找一些有趣的方法让 Linux 的操作变得简单好玩,主要是基于终端操作. 当我们发现使用 Linu

Linux命令行上传文件到百度网盘

利用bpcs_uploader你可以自动将VPS主机上的文件上传到百度网盘中,同时也可以从百度网盘中下载文件到VPS主机上,让你的文件安全地"住"在百度云中.[font=Tahoma, 'Microsoft Yahei', Simsun]百度云空间容量大,且有了百度这个靠山,日后也不必担心网盘关门走人,随着众多国内网盘开始投放大量的广告到网盘下载页面(典型的有华为网盘.下载赚钱网盘),百度网盘清爽的风格就显得难能可贵了.将文件上传到百度云中就可以方便其它用户下载 1.安装wdcp wg

[E2E_L9]Linux命令行上传文件到百度网盘

百度有2TB 存储空间,在有第三方服务器的情况下,很多东西不需要下载到本地,可以直接使用服务转存,这非常好. 系统环境: Linux 系统 + Python 2.7 安装软件工具:[可能会要重复装] pip install requests pip install setuptools pip install bypy source ~/.bashrc 授权登陆: 执行 bypy info,显示下边信息,根据提示,通过浏览器访问下边灰色的https链接,如果此时百度网盘账号正在登陆,会出现长串授

Linux命令行上传文件

1.软件包:lrzsz3.安装软件包:yum -y install lrzsz4.使用命令:rz 原文地址:http://blog.51cto.com/2326749/2319026

github linux 命令行操作实例

继续整理一下linux 下面使用命令行操作实例 首先创建文件目录 然后 执行 git clone 操作 [email protected]:~/桌面$ cd test/ [email protected]:~/桌面/test$ git clone https://github.com/timelessz/TESTDEMO.git正克隆到 'TESTDEMO'...remote: Counting objects: 3, done.remote: Total 3 (delta 0), reused

详解Linux命令行下常用svn命令

1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2.Linux命令行下往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3.Linux命令行下将改动的文件提交到版本库 svn commit -

在 Linux 命令行中使用和执行 PHP 代码

PHP是一个开源服务器端脚本语言,最初这三个字母代表的是“Personal Home Page”,而现在则代表的是“PHP:Hypertext Preprocessor”,它是个递归首字母缩写.它是一个跨平台脚本语言,深受C.C++和Java的影响. 在 Linux 命令行中运行 PHP 代码 PHP的语法和C.Java以及带有一些PHP特性的Perl变成语言中的语法十分相似,它当下大约正被2.6亿个网站所使用,当前最新的稳定版本是PHP版本5.6.10. PHP是HTML的嵌入脚本,它便于开发

Linux命令行批量替换多文件中的字符串【转】

Linux命令行批量替换多文件中的字符串[转自百度文库] 一种是Mahuinan法,一种是Sumly法,一种是30T法分别如下: 一.Mahuinan法: 用sed命令可以批量替换多个文件中的字符串.sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录` 例如:我要把mahuinan替换为huinanma, 执行命令:sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www' 这是目

Linux 用户的 3 个命令行小技巧

Linux 用户的 3 个命令行小技巧 原文:http://www.tecmint.com/useful-linux-hacks-commands/作者: Avishek Kumar译文:LCTT  https://linux.cn/article-5635-1.html译者: goreliu Linux世界充满了乐趣,我们越深入进去,就会发现越多有趣的事物.我们会努力给你提供一些小技巧,让你和其他人有所不同,下面就是我们准备的3个小技巧. 1. 如何在不使用Cron的情况调度Linux下的任务