Home >Backend Development >PHP Tutorial >PHP execution Linux command line example - file compression, _PHP tutorial

PHP execution Linux command line example - file compression, _PHP tutorial

WBOY
WBOYOriginal
2016-07-12 08:51:42859browse

A small example of PHP executing Linux command line - file compression,

When I was working a few days ago, I needed to pack 3 txt files into *.zip down to the local...

At first, like ordinary young people, I thought of using PHP’s built-in ZipArchive. The code should look like this:

PHP execution Linux command line example - file compression, _PHP tutorial
<span>/*</span><span>拆分成3个txt文件 分别是wow_1.txt wow_2.txt 和 wow_3.txt</span><span>*/</span>

<span>$zip</span>=<span>new</span><span> ZipArchive();
</span><span>$zipfile</span>='./Exl_file/wow.zip'<span>;
</span><span>if</span>(<span>$zip</span>->open(<span>$zipfile</span>,ZIPARCHIVE::CREATE)===<span>TRUE</span><span>){
    </span><span>$zip</span>->addFile('./Exl_file/wow_1.txt','wow_1.txt'<span>);
    </span><span>$zip</span>->addFile('./Exl_file/wow_2.txt','wow_2.txt'<span>);
    </span><span>$zip</span>->addFile('./Exl_file/wow_3.txt','wow_3.txt'<span>);
    </span><span>$zip</span>-><span>close();
        
    </span><span>//</span><span>下载  输出文件后删除相关文件</span>
<span>        
}</span><span>else</span><span>{
    </span><span>echo</span> "ZIP生成失败!"<span>;
}</span>
PHP execution Linux command line example - file compression, _PHP tutorial

But the problem is that the zip extension is not installed in the official environment, so ZipArchive cannot be used directly. The code is definitely faster than installing an extension on it - use PHP to call the Linux command line, execute the compression command, OK, immediately action!

PHP execution Linux command line example - file compression, _PHP tutorial
<span>/*</span><span>拆分成3个txt文件 分别是wow_1.txt wow_2.txt 和 wow_3.txt  全部放到 Exl_file 目录下</span><span>*/</span>

<span>$outputs</span>=<span>array</span><span>();

</span><span>/*</span><span>用php的exec执行Linux命令   括号里的字符串就是你在Linux命令窗口里敲的命令;
   第二个参数是  linux执行该命令后返回的结果数组;
   linux执行返回的每一条结果依次存入该数组 
   
   第三个参数是结果,如果执行成功,则Linux返回结果值为0,如果执行失败,则结果值不为0
   
   </span><span>*/</span>
   

<span>exec</span>("zip ./Exl_file/wow.zip ./Exl_file/wow_1.txt ./Exl_file/wow_2.txt ./Exl_file/wow_3.txt",<span>$outputs</span>,<span>$rc</span><span>);


</span><span>if</span>(<span>$rc</span>!=0<span>){
    </span><span>foreach</span> (<span>$outputs</span> <span>as</span> <span>$ko</span>=><span>$vo</span><span>){
        </span><span>echo</span> "<span>$vo</span><br/>"<span>;
    }
}</span><span>else</span><span>{
    </span><span>$zipfile</span>='./Exl_file/wow.zip'<span>;
        
    </span><span>//</span><span>文件下载  输出后删除相关文件</span>
<span>    }
}</span>
PHP execution Linux command line example - file compression, _PHP tutorial


You can change if($rc!=0) to if(1==1) to view the result line returned by the Linux execution command, as shown below:

adding: Exl_file/wow_1.txt (deflated 96%<span>)
adding</span>: Exl_file/wow_2.txt (deflated 97%<span>)
adding</span>: Exl_file/wow_3.txt (deflated 97%)

You can see that all the information returned by the execution is entered into the $outputs array, and the *.zip file is generated successfully.

There are many online searches for related articles about PHP executing Linux commands. I recommend one: http://blog.csdn.net/yangjun07167/article/details/5603425

 

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1128381.htmlTechArticlePHP execution Linux command line example - file compression, a few days ago, I needed to compress 3 txt files , package it into *.zip and download it locally. At first, like ordinary young people, I thought of using PHP built-in...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn