php教程

Zip压缩文件夹php打包函数代码

我的站长站 2023-06-30 人阅读

分享一个我的站长站自用的Zip压缩文件夹php打包函数代码,Zip相关函数是PHP的扩展功能,此函数可以直接复制使用。

以下是代码:

<?php
# 将文件夹的文件压缩到文件里
class Zip
{
   /**
    * 将目标文件夹下的内容压缩到zip中(zip包含文件夹目录)
    * @param $sourcePath *文件夹路径 例: /home/test
    * @param $outZipPath *zip文件名(包含路径) 例: /home/zip_file/test.zip
    * @return string
    */
   public static function zipFolder($sourcePath, $outZipPath)
   {
       $parentPath = rtrim(substr($sourcePath, 0, strrpos($sourcePath, '/')),"/")."/";
       $dirName = ltrim(substr($sourcePath, strrpos($sourcePath, '/')),"/");
       $sourcePath=$parentPath.'/'.$dirName;//防止传递'folder'文件夹产生bug
       $z = new \ZipArchive();
       $z->open($outZipPath, \ZIPARCHIVE::CREATE);//建立zip文件
       $z->addEmptyDir($dirName);//建立文件夹
       folderToZip($sourcePath, $z, strlen("$parentPath/"));
       $z->close();
       return $outZipPath;
   }
   public static function folderToZip($folder, &$zipFile, $exclusiveLength)
   {
       $handle = opendir($folder);
       while (false !== $f = readdir($handle)) {
           if ($f != '.' && $f != '..') {
               $filePath = "$folder/$f";
               // 在添加到zip之前从文件路径中删除前缀
               $localPath = substr($filePath, $exclusiveLength);
               if (is_file($filePath)) {
                   $zipFile->addFile($filePath, $localPath);
               } elseif (is_dir($filePath)) {
                   // 添加子文件夹
                   $zipFile->addEmptyDir($localPath);
                   self::folderToZip($filePath, $zipFile, $exclusiveLength);
               }
           }
       }
       closedir($handle);
   }
}


相关推荐
  • php代码
  • php打包
  • PHP函数
  • 支付宝企业账户转账个人账户php接口代码

    前言支付宝企业账户转账个人账户php接口代码,该接口主要用于平台对用户奖励的发放,场景也很简单就是我在你平台上有余额,我提现,平台给钱。只不过项目中是用的官方的SDK调用的,仔细看了下那个SDK目录,把很多无用的接口(目前自己用不上)也包含在里面,作为强...

    php教程 161 2年前
  • php判断目录文件是否存在

    一段简单的php判断目录文件是否存在代码,收藏记录一下,以后肯定用得到的。<?php$filename = &#39;../../e/install/&#39;; if (file_exists($filename)) { echo "<h3><div align=&#39;center&#39;><font color=&#39;#FF0000&#39;>存在安全风险!请将 ...

    php教程 115 2年前
  • curl函数获取API接口数据方法

    PHP利用curl函数,获取API接口数据方法示例代码,自用收藏<?php $weather = curl_init(); curl_setopt($weather,CURLOPT_URL,"https://api.pc2801.com/cqssc/".time()); curl_setopt($weather, CURLOPT_SSL_VERIFYPEER, false); //如果...

    php教程 89 2年前
  • Zip压缩文件夹php打包函数代码

    分享一个我的站长站自用的Zip压缩文件夹php打包函数代码,Zip相关函数是PHP的扩展功能,此函数可以直接复制使用。以下是代码:<?php# 将文件夹的文件压缩到文件里class Zip{ /** * 将目标文件夹下的内容压缩到zip中(zip包含文件夹目录) * @param $s...

    php教程 37 9个月前
  • php一键打包压缩目录文件代码示例

    新建一个PHP文件,保存以下代码,放到需要打包的文件夹内,浏览器访问文件即可。<?php $button=$_POST[&#39;button&#39;]; if($button=="开始打包") { $zip = new ZipArchive(); $filename = "./".date("Y-m-d")."_".md5(tim...

    php教程 471 1年前
  • PHP数组转换为JSON格式数据

    PHP数组转换为JSON格式数据,这里介绍下PHP json_encode函数,他可以轻松完成转换。json_encode函数PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。json_encode语法string json_encode ( $value [, $opt...

    php教程 99 3年前
  • 利用get_headers函数判断链接是否有效或失效

    PHP判断链接是否有效或失效的方法代码,get_headers() 是PHP系统级函数,他返回一个包含有服务器响应一个 HTTP 请求所发送的标头的数组。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息(可用来判断远程文件是否存在)。函数定义array get_he...

    php教程 117 3年前
  • 利用explode() 函数分隔字符

    explode()函数本函数为 implode() 的反函数,使用一个字符串分割另一个字符串,返回一个数组。语法:codearray explode( string separator, string string [, int limit] )参数说明:separator 分割标志 string 需要分割的字符串 limit 可选...

    php教程 75 3年前
最新更新