毕业设计网
开发环境 |

php将文件夹打包成zip文件

、为了将文件夹的内容打包,需要循环操作,所以先建立一个函数,用于对子文件夹打包

//这个函数需要传递两个参数,第一个$path是当前操作的文件夹路径,第二个是ZipArchive对象

function addFileToZip($path, $zip)

{

2、打开当前操作的文件夹,并用一个变量指向它

//打开当前文件夹由$path指定。

$handler = opendir($path);

      3、循环的读取文件夹下的所有文件和文件夹

      /*

     其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,为了不陷于死循环,所以还要让$filename !== false。
      一定要用!==,因为如果某个文件名如果叫'0',或者某些被系统认为是代表false,用!=就会停止循环

     */

      while( ($filename = readdir($handler)) !== false )

      {

            4、文件夹下都会有两个文件,名字为'.'和‘..’,不要对他们进行操作

            if($filename != "." && $filename != "..")

            {

                 5、如果读取的某个对象是文件夹

                // 对于文件夹,is_dir会返回FALSE,注意路径是$path."/".$filename

                 if(is_dir($path."/".$filename))

                 {

                6、对于文件夹,再次调用函数addFileToZip,并将当前操作的文件夹路径传递给函数

                 addFileToZip($path."/".$filename, $zip);

                7、如果读取的某个对象是文件

                 }else{

                //将文件加入zip对象

                 $zip->addFile($path."/".$filename);

                 }

            }

      }

8、关闭当前操作的文件夹

//当前文件夹由$path指定。

closedir($path);

}

 

//以下是函数外的代码

9、新建一个ZipArchive的对象

$zip = new ZipArchive;

10、通过ZipArchive的对象处理zip文件

/*

$zip->open这个方法第一个参数表示处理的zip文件名。

第二个参数表示处理模式。如果参数使用ZipArchive::OVERWRITE,系统会覆盖掉原来的zip文件。

如果zip文件不存在,系统都会自动新建。

如果对zip文件对象操作成功,$zip->open这个方法会返回TRUE

*/

if ($zip->open('test.zip', ZipArchive::OVERWRITE) === TRUE)

{

11、调用函数,对要打包的根目录进行操作,并将ZipArchive的对象传递给函数

addFileToZip('book/php', $zip);

     12、关闭处理的zip文件

      $zip->close();

}

  

以上是一部分介绍,如需要完整的资料或者如不符合您的要求,请联系技术人员qq:242219979咨询

上一篇:php将文件压缩成zip文件
下一篇:ASP.NET与IIS配置


版权所有 毕业设计网联系qq:242219979 © 2007-2022