PHP利用ZipArchive对网站程序整站打包源代码

后端开发   发布日期:2023年05月15日   浏览次数:523

PHP利用ZipArchive对网站程序所有目录进行整站打包的源代码分享。

  1. function addFileToZip($path, $zip) {
  2. $handler = opendir($path); //打开当前文件夹由$path指定。
  3. /*
  4. 循环的读取文件夹下的所有文件和文件夹
  5. 其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,
  6. 为了不陷于死循环,所以还要让$filename !== false。
  7. 一定要用!==,因为如果某个文件名如果叫'0',或者某些被系统认为是代表false,用!=就会停止循环
  8. */
  9. while (($filename = readdir($handler)) !== false) {
  10. if ($filename != "." && $filename != ".." && $filename != "out_zip" ) {//文件夹文件名字为'.'和‘..’,不要对他们进行操作
  11. if (is_dir($path . "/" . $filename)) {// 如果读取的某个对象是文件夹,则递归
  12. addFileToZip($path . "/" . $filename, $zip);
  13. } else { //将文件加入zip对象
  14. $zip->addFile($path . "/" . $filename);
  15. }
  16. }
  17. }
  18. @closedir($path);
  19. }
  20.  
  21. $action='zip';
  22.  
  23. if ($action=='zip'){
  24. ini_set('memory_limit','512M');
  25. set_time_limit(180);
  26. $path_name="out_zip/web_www.zip";//创建压缩包的路径,在addFileToZip中要排除这个目录,不压缩本身
  27. if (file_exists($path_name)){
  28. unlink($path_name);//删除文件
  29. fopen($path_name, "w");//创建压缩包(为了清空文件)
  30. }else{
  31. fopen($path_name, "w");//创建压缩包
  32. }
  33. $zip = new ZipArchive();
  34. if ($zip->open($path_name, ZipArchive::OVERWRITE) === TRUE) {
  35. //dirname(__FILE__) 当前绝对路径
  36. addFileToZip("./", $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
  37. //$zip->addFile("home.php");//也可以不通过addFileToZip()函数,直接添加文件
  38. //$zip->addFile("Android/index.php");
  39. $zip->close(); //关闭处理的zip文件
  40. echo "压缩包压缩成功";
  41. }else{
  42. echo "启动失败";
  43. }
  44. }


以上就是PHP利用ZipArchive对网站程序整站打包源代码的详细内容,更多关于PHP利用ZipArchive对网站程序整站打包源代码的资料请关注九品源码其它相关文章!