PHP - 使用 zlib 创建标准 zip 文件

问题描述 投票:0回答:3

我刚刚发现我的托管服务器不支持 PHP 的 ZIP 类。

但是,它已安装并支持 Zlib 。

是否有任何库/函数/hack/类/可以让我在这样的服务器上处理ZIP文件?

基本上我想创建 zip 文件。我担心我的用户会害怕 GZ 扩展名,我想为他们提供 ZIP 扩展名(他们将在 win 系统上正常打开)?

(请不要告诉我更改托管 - 我已经知道我必须这样做,但这需要时间,而且事情非常紧急..)

更新我。感谢@Mark Baker - 我能够使用 pclzip 类和这个简单的代码提取文件

<?php

 include('pclzip.lib.php');
  $archive = new PclZip('wp.zip');
  $location = $_SERVER['DOCUMENT_ROOT'];
  if ($archive->extract(PCLZIP_OPT_PATH, $location ,
                        PCLZIP_OPT_REMOVE_PATH, 'install/release') == 0) {
    die("Error : ".$archive->errorInfo(true));
  }
?>

(我只是想在这里发布代码,评论太长了,我不想发布另一个答案)

仍然没有测试创建,但如果它的工作原理相同 - 那么我真的很想亲吻该类的开发人员! :-)

php zip zlib
3个回答
2
投票

Zlib 不能帮助您创建 zip 文件。

作为缺少的 ZipArchive 的替代方案,您可以查看 PCLZip 库。这是纯 PHP,因此不需要额外的扩展,并且允许您在没有 ZipArchive 的情况下创建 zip 文件。


0
投票

最新答案 11 年后,我因为 PclZip 的问题来到这里。它不再真正得到维护了。

我找到了一个很好的替代方案,它可以提供 Zip 文件而无需保存它们:

Packagist 上的

maennchen/zipstream-php

ZipStream 易于使用且开箱即用。


-2
投票

我相信在 Windows 上,扩展程序仅告诉它使用什么应用程序来打开它。

所以你可以将其另存为 winzip 将打开的东西,然后重命名它......

© www.soinside.com 2019 - 2024. All rights reserved.