PHP 使用 Zip File 函数在线解压文件

发布于 2018-01-05 22:23:34 字数 2644 浏览 2401 评论 0

平时都是使用 FTP 上传文件的,FTP 的方式就是一个个文件逐个上传,上传的速度很慢而且很费时间,偶尔因为网速原因还会卡住,那么我就想,能不能先把文件压缩成 zip 文件,然后上传以后在服务器上解压,这样更加的方便传送大量的文件。

PHP 使用 Zip File 函数在线解压文件

如需在服务器上运行 Zip File 函数,必须安装这些库:

  • Guido Draheim 的 ZZIPlib 库
  • Zip PELC 扩展

函数安装

在 Linux 系统上安装

PHP 5+:Zip 函数和 Zip 库默认不会启用,必须从上面的链接下载。请使用 --with-zip=DIR 配置选项来包含 Zip 支持。

在 Windows 系统上安装

PHP 5+:Zip 函数默认不会启用,必须从上面的链接下载 php_zip.dllZZIPlib 库。必须在 php.ini 之内启用 php_zip.dll

如需启用任何 PHP 扩展,PHP 的 extension_dir 设置(在 php.ini 文件中)应该设置为该 PHP 扩展所在的目录。举例 extension_dir 的值可能是 c:\php\ext

可用函数

函数描述PHP
zip_close()关闭 ZIP 文件。4
zip_entry_close()关闭 ZIP 文件中的一个项目。4
zip_entry_compressedsize()返回 ZIP 文件中的一个项目的被压缩尺寸。4
zip_entry_compressionmethod()返回 ZIP 文件中的一个项目的压缩方法。4
zip_entry_filesize()返回 ZIP 文件中的一个项目的实际文件尺寸。4
zip_entry_name()返回 ZIP 文件中的一个项目的名称。4
zip_entry_open()打开 ZIP 文件中的一个项目以供读取。4
zip_entry_read()读取 ZIP 文件中的一个打开的项目。4
zip_open()打开 ZIP 文件。4
zip_read()读取 ZIP 文件中的下一个项目。4

函数示例

$zip = zip_open("/tmp/test2.zip");
if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        echo "Name:               " . zip_entry_name($zip_entry) . "\n";
        echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
        echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";
        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "File Contents:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";
            zip_entry_close($zip_entry);
        }
        echo "\n";
    }
    zip_close($zip);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

文章
评论
84963 人气
更多

推荐作者

微信用户

文章 0 评论 0

小情绪

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

笨死的猪

文章 0 评论 0

彭明超

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文