永发信息网

PHP-php生成zip压缩文件如何给该文件加解压缩密码

答案:1  悬赏:40  手机版
解决时间 2021-11-27 04:05
PHP-php生成zip压缩文件如何给该文件加解压缩密码
最佳答案
//需开启配置 php_zip.dll
//phpinfo();
header("Content-type:text/html;charset=utf-8");
function get_zip_originalsize($filename, $path) {
 //先判断待解压的文件是否存在
 if(!file_exists($filename)){
  die("文件 $filename 不存在!");
 } 
 $starttime = explode(' ',microtime()); //解压开始的时间

 //将文件名和路径转成windows系统默认的gb2312编码,否则将会读取不到
 $filename = iconv("utf-8","gb2312",$filename);
 $path = iconv("utf-8","gb2312",$path);
 //打开压缩包
 $resource = zip_open($filename);
 $i = 1;
 //遍历读取压缩包里面的一个个文件
 while ($dir_resource = zip_read($resource)) {
  //如果能打开则继续
  if (zip_entry_open($resource,$dir_resource)) {
   //获取当前项目的名称,即压缩包里面当前对应的文件名
   $file_name = $path.zip_entry_name($dir_resource);
   //以最后一个“/”分割,再用字符串截取出路径部分
   $file_path = substr($file_name,0,strrpos($file_name, "/"));
   //如果路径不存在,则创建一个目录,true表示可以创建多级目录
   if(!is_dir($file_path)){
    mkdir($file_path,0777,true);
   }
   //如果不是目录,则写入文件
   if(!is_dir($file_name)){
    //读取这个文件
    $file_size = zip_entry_filesize($dir_resource);
    //最大读取6M,如果文件过大,跳过解压,继续下一个
    if($file_size<(1024*1024*6)){
     $file_content = zip_entry_read($dir_resource,$file_size);
     file_put_contents($file_name,$file_content);
    }else{
     echo " ".$i++." 此文件已被跳过,原因:文件过大, -> ".iconv("gb2312","utf-8",$file_name)." 
";
    }
   }
   //关闭当前
   zip_entry_close($dir_resource);
  }
 }
 //关闭压缩包
 zip_close($resource); 
 $endtime = explode(' ',microtime()); //解压结束的时间
 $thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);
 $thistime = round($thistime,3); //保留3为小数
 echo "解压完毕!,本次解压花费:$thistime 秒。
";
}
$size = get_zip_originalsize('20131101.zip','temp/');
?>
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2016年7月19日t56次列车几点能到北京
成都a世界电脑城的介绍
紫甘蓝汁如果遇到又是酸性就是碱性的物质该变
扬州上合百年老窖十五年多少钱一瓶
古时一月内的有些天有特定的称呼,如初一称什
空之境界式为什么那么痛苦?
甲醇高位槽故障与维修有何故障
司马昭属什么的
linux文件属性
话止于静者 思栖于智者什么意思
黑暗之魂3给人物升级什么拿大盾翻滚速度快
挖到什么标高开始强夯
怎样用化学方法鉴别 “乙醛、2-戊酮、3-戊
一元钱的货卖五元 利润是百分之几?
考上本科有补贴吗
推荐资讯
请问ORA-12549: TNS: 超出操作系统资源限额
数学题脱式计算要过程全部要是回答的话先冒个
这个手相好吗,这是左手,右手和这个掌纹一摸
矿石是大自然本来有的吗?
为什么自己做的酱肉皮太硬?
踊跃什么意思?
豪丰物流公司(平南分公司)地址在什么地方,我
闻香咖啡馆地址在什么地方,想过去办事,
死侍中主角中提到的乐队是哪个
新县距离丽江多少公里
现在有哪些新出来的3d网络游戏
家用自来水供压一般用多大的功率的水泵合适?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?