【问题标题】:Class 'ZipArchive' not found error while using PHPExcel使用 PHPExcel 时未找到类“ZipArchive”错误
【发布时间】:2014-12-25 22:47:40
【问题描述】:

当我在新服务器上使用 PHPExcel 时, 我遇到了错误“找不到类 'ZipArchive'”,它似乎被我的托管服务提供商阻止了。

我不能在没有 Zip 支持的情况下在服务器上使用 PHPExcel 吗? 此服务器上安装了 PHP 5.2.8,但我无法使用 PHPExcel 的基本 PHP 源代码。

任何帮助将不胜感激, 谢谢。

【问题讨论】:

  • ZipArchive 应该出现在 5.2.8 系统上。无论如何,5.2 是no longer supported。你应该换一个更好的主人
  • 如果您只使用 PHP 5.2.8,那么我强烈建议您使用 hobnail 启动您的托管服务提供商,直到他们将您的 PHP 升级到仍在积极支持的版本跨度>

标签: php phpexcel php-5.2


【解决方案1】:

某些电子表格文件格式(例如 Excel 2007 及更高版本用作默认格式的 OfficeOpenXML)需要 ZipArchive。在最新版本的 PHP 中,ZipArchive 始终可用,但在 PHP 5.3 之前,它需要作为 PHP 扩展手动安装在某些系统上。

如果您没有为您的 PHP 安装/启用 ZipArchive,并且无法自己启用它,那么您可以使用

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);

PCLZip 包含在 PHPExcel 发行版中,作为 PHP 内置 ZipArchive 类的替代品,尽管它的速度要慢一些。启用 PCLZip 后,即使没有 ZipArchive,您也可以使用基于 zip 的电子表格格式。

但是,当我们第一次捆绑 PCLZip(最初在 PHPExcel 1.7.6 中)时,它只是在编写基于 zip 的格式时的一个选项,而不是在阅读它们时。我们在 PHPExcel 1.8.0 中对此进行了更改,因此启用 PCLZip 现在允许您读取和写入基于 zip 的格式。

PHPEXcel 阅读器文档详细介绍了不同的电子表格格式,并解释了哪些是基于 zip 的。 PHPEXcel Reader documentation

【讨论】:

  • 真的吗? doco 说它在 PHP 5 >= 5.2.0
  • 不管文档怎么说,在 5.3.0 之前的版本中,它在 Windows 平台上的可用性肯定存在问题,我相信它也必须针对 Linux 构建进行配置...... . 我不得不处理很多人在 ZipArchive 不可用时遇到问题,这就是为什么我不得不介绍 PCLZip 替代方案
  • 感谢您的回答。它帮助我理解出了什么问题。我们可以举个例子如何使用 PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); ?
  • 在使用 php7 安装的 Ubuntu 16 上遇到了这个问题 - 使用 apt-get install php7.0-zip 对其进行了排序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多