【问题标题】:Fatal error: Allowed memory size of 134217728 bytes exhausted in C:\wamp\www\zannier\Classes\PHPExcel\CachedObjectStorage\CacheBase.php致命错误:C:\wamp\www\zannier\Classes\PHPExcel\CachedObjectStorage\CacheBase.php 中允许的内存大小为 134217728 字节
【发布时间】:2015-06-09 15:31:58
【问题描述】:

我尝试使用 PHP 处理大型 excel 文件(5500 行 * 50 列)我的代码是正确的,当我尝试仅 100 行时我没有任何错误。 但是当我把整个文件,我有这个致命的错误 我试图将 memory_limit 更改为 256 而不是 128 但没有任何反应 有什么解决方案来处理我的洞文件!

错误是: 致命错误:第 173 行 C:\wamp\www\zannier\Classes\PHPExcel\CachedObjectStorage\CacheBase.php 中允许的内存大小为 134217728 字节已用尽(试图分配 24 字节) 我的代码是:

 <?php

    require_once ".\Classes\PHPExcel\IOFactory.php";

    $objPHPExcel = PHPExcel_IOFactory::load("zfg01_CAT.xls");


    $sheet = $objPHPExcel->getSheet(0);

   include 'fonctionsUtiles.php';
  // afficherUneFeuille($sheet);
   echo'<br>';
   echo $sheet->getHighestRow();
   echo'<br>';

   supprimerLesDoublons($sheet);
   afficherUneFeuille($sheet);
    echo $sheet->getHighestRow();
   echo'<br>';

    ?>

谢谢!

【问题讨论】:

  • 如果错误为 134217728,您没有更改 memory_limit
  • 您在更改 .ini 文件后没有重新启动网络服务器,或者您更改了错误的 .ini 文件并且根本没有更改限制。
  • 如果您使用 PHPExcel 处理大型 Excel 文件,那么为什么不使用任何记录在案的缓存方法来减少内存使用量?
  • 是的,我忘了重启 Apache,我会尝试使用缓存方法谢谢!

标签: php phpexcel


【解决方案1】:

您需要退回 Apache 以获取更改的设置

【讨论】:

  • 是的,我忘记重新启动我的 Apache,但现在我遇到了执行时间问题致命错误:超过了 120 秒的最大执行时间
  • 您可以尝试更改 php.ini 中的 max_execution_time 或通过 PHP 使用 set_time_limit() 进行设置。
【解决方案2】:

谨慎操作:在 php.ini 文件中设置 memory_limit = -1。重启 Apache。

对 WAMP 很重要:它使用两个 php.ini 文件,一个在您单击 WAMP 托盘菜单时使用(在浏览器中打开脚本时适用于 apache),另一个在 WAMP 中在命令行中执行 PHP 时工作的目录树(类似于 C:\wamp64\bin\php\php5.6.25\php.ini)。

【讨论】:

    猜你喜欢
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2016-04-13
    • 2015-07-06
    • 2016-12-11
    • 1970-01-01
    • 2014-03-20
    相关资源
    最近更新 更多