我刚刚发现我的托管服务器不支持 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));
}
?>
(我只是想在这里发布代码,评论太长了,我不想发布另一个答案)
仍然没有测试创建,但如果它的工作原理相同 - 那么我真的很想亲吻该类的开发人员! :-)
Zlib 不能帮助您创建 zip 文件。
作为缺少的 ZipArchive 的替代方案,您可以查看 PCLZip 库。这是纯 PHP,因此不需要额外的扩展,并且允许您在没有 ZipArchive 的情况下创建 zip 文件。
最新答案 11 年后,我因为 PclZip 的问题来到这里。它不再真正得到维护了。
我找到了一个很好的替代方案,它可以提供 Zip 文件而无需保存它们:
Packagist 上的ZipStream 易于使用且开箱即用。
我相信在 Windows 上,扩展程序仅告诉它使用什么应用程序来打开它。
所以你可以将其另存为 winzip 将打开的东西,然后重命名它......