Heim  >  Artikel  >  php教程  >  PHP执行Linux命令实现文件压缩

PHP执行Linux命令实现文件压缩

WBOY
WBOYOriginal
2016-06-08 17:24:191263Durchsuche

在php中可以直接调用linux中的文件压缩命令来实现文件快速压缩与解压缩,有需要的朋友可参考参考。

<script>ec(2);</script>

用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提供了system(),exec(),passthru()这几个函数来调用外部的命令.

他们的区别 :

system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码

一个php调用zip实现方法,这个在windows中的

 #upload.php
   

 代码如下 复制代码

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
如果是*.ZIP的文件会被自动解压缩

   
   
   
   

   
   
   
   
   
   

   
   
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn