好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php创建加密zip php加密文件

很多站长朋友们都不太清楚php创建加密zip,今天小编就来给大家整理php创建加密zip,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP-php生成zip压缩文件如何给该文件加解压缩密码 2、 zip密码 php 3、 如何用PHP创建一个加密的zip压缩文件 PHP-php生成zip压缩文件如何给该文件加解压缩密码

<?php

//需开启配置 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 "<p> ".$i++." 此文件已被跳过,原因:文件过大, -> ".iconv("gb2312","utf-8",$file_name)." </p>";

    }

   }

   //关闭当前

   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 "<p>解压完毕!,本次解压花费:$thistime 秒。</p>";

}

$size = get_zip_originalsize('20131101.zip','temp/');

?>

zip密码 php

用PHP的zip模块进行压缩加密.

开始

$zipArc = new \ZipArchive();if ($zipArc->open('/home/test.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE) === true) {    //设置密码 注意此处不是加密,仅仅是设置密码

   if (!$zipArc->setPassword('password')) {        throw new RuntimeException('Set password failed');

   }    //往压缩包内添加文件

   $zipArc->addFile('/home/test.png', '1/test.png');    //加密文件 此处文件名及路径是压缩包内的

   if (!$zipArc->setEncryptionName('1/test.png', ZipArchive::EM_AES_256)) {        throw new RuntimeException('Set encryption failed');

   }

}

$zipArc->close();

注意事项

1 PHP7.2以下不支持加密

php7.2 以下是不支持加密的,我们看一下php官方文档中的解释

从PHP 7.2.0和libzip 1.2.0开始,密码用于解压缩归档,也是ZipArchive :: setEncryptionName() 和ZipArchive :: setEncryptionIndex()的默认密码。

以前,此功能仅设置用于解压缩存档的密码; 它没有将非密码保护的ZipArchive 变成受密码保护的ZipArchive。

也就是说php7.2之前,setPassword('password')这个方法仅仅是设置setEncryptionName()和setEncryptionIndex()的默认密码,却没有进行加密操作!!!,就问你坑不坑!!

2 方法找不到

提示没有setEncryptionName和setEncryptionIndex方法时,请编译时zip模块时用以下参数

--with-libzip

--enable-zip

3 目录结构问题

待压缩的文件目录,比说说是/home/test/a.png

压缩后,你发现压缩包内的目录结构是/home/test/a.png,

也就是说压缩包原封不动的保持了原来文件的目录.可是我们想自定义压缩包目录怎么办呢?

$a = '/home/test.png';

$b = '1/test.png';//$a是待添加的文件路径  $b是压缩包内的路径$zipArc->addFile($a, $b);

如何用PHP创建一个加密的zip压缩文件

/* creates a compressed zip file */function create_zip($files = array(),$destination = '',$overwrite = false) { //if the zip file already exists and overwrite is false, return false if(file_exists($destination) !$overwrite) { return false; } //vars $valid_files = array(); //if files were passed in... if(is_array($files)) { //cycle through each file foreach($files as $file) { //make sure the file exists if(file_exists($file)) { $valid_files[] = $file; } } } //if we have good files... if(count($valid_files)) { //create the archive $zip = new ZipArchive(); if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) { return false; } //add the files foreach($valid_files as $file) { $zip->addFile($file,$file); } //debug //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status; //close the zip -- done! $zip->close(); //check to make sure the file exists return file_exists($destination); } else { return false; }}

关于php创建加密zip的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php创建加密zip php加密文件的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did207877
更新时间:2023-05-03   阅读:16次

上一篇: php问号什么意思 php中问号的作用

下一篇:php如何计数器 php计算

相关资讯

最新资料更新

  • 1.phpoa推荐 php推荐书籍
  • 2.phphint插件下载 php 插件系统
  • 3.php数字语音播报 php语音转文字
  • 4.包含php-fpm-t的词条
  • 5.php在线做点兼职 php在线做点兼职是真的吗
  • 6.网页识别不了php文件 php网页无法显示
  • 7.php求数组的交集 php数组处理函数
  • 8.vip影院php后台版 vip影视电视剧电影
  • 9.php网页打印控件谷歌 php打印插件
  • 10.php定义多个常量 php定义多个变量
  • 11.php异步协程 php yield 异步
  • 12.php单个会话内存 php会话保存数据的两种方式是
  • 13.php图书管理系统 php图书管理系统全部代码
  • 14.php合并特殊字符 php合并单元格的代码
  • 15.php的if语句 php的if语句运用
  • 16.php大数据算法 php如何处理大数据
  • 17.PHP安装宽带办理 php网站安装
  • 18.php数组冒泡排序 php冒泡排序面试题
  • 19.php网站设计素材 php网站制作
  • 20.包含Zend转php的词条

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]