【问题标题】:php mpdf memory limit errorphp mpdf内存限制错误
【发布时间】:2013-03-06 21:19:13
【问题描述】:

我第一次使用 mpdf 库,一切正常。 我编写了一个脚本来创建包含 274 行表的 pdf 文件。当我运行脚本时,我得到 php 内存错误。我尝试了不同的场景,但我得到了相同的内存错误。请帮我解决这个错误。我在下面列出了不同的场景及其结果。

php.ini = memory_limit = 256M

script = ini_set('memory_limit', '25M');

Result:
memory_get_usage() = 12.75 mb
memory_get_peak_usage() = 12.75 mb
Fatal error: Allowed memory size of 26214400 bytes exhausted
(tried to allocate 261904 bytes)
in C:\xampp\htdocs\XX\lib\pdf\mpdf\mpdf.php on line 14268

php.ini = memory_limit = 256M

script = ini_set('memory_limit', '-1');

Result:
memory_get_usage() = 12.75 mb
memory_get_peak_usage() = 12.75 mb
Fatal error: Out of memory (allocated 1898971136)
(tried to allocate 261904 bytes) 
in C:\xampp\htdocs\XX\lib\pdf\mpdf\mpdf.php on line 14265

【问题讨论】:

  • ini_set('memory_limit', -1); var_dump(ini_get('memory_limit')); 确认您的更改正在设置中。
  • @Mike B 它输出 this = string(2) "-1"
  • 所以其他东西正在将内存限制设置回 25。
  • 有什么办法纠正这个问题吗? :-(
  • 你能隔离出有问题的 HTML 部分吗?例如,它是否有助于瘦身,或删除样式表等?如果您通过 DOMDocument (loadXhtml + saveHtml) 运行它来解决嵌套问题,是否有帮助?您能否隔离导致 mpdf 内存问题的代码?

标签: php pdf pdf-generation mpdf memory-limit


【解决方案1】:

mPDF 在服务器上使用大量内存。如果您收到超出内存限制的错误消息,请尝试以下操作:

在非常长的文档中以小块处理 HTML 代码比在一个大的 HTML 字符串中使用 ini_set("memory_limit","128M") 或在脚本顶部使用类似来分配更多内存生成更有效一个较小的 mpdf.php 文件。

ini_set("memory_limit","128M"); $mpdf = 新 \Mpdf\Mpdf();

它工作!!!

更多详情:https://mpdf.github.io/troubleshooting/memory-problems.html

【讨论】:

  • 这应该是一个可以接受的答案。
【解决方案2】:

可以使用多个选项来减少表内存使用量。 official doc here

【讨论】:

  • 伙计,我真的需要你的回答,但你发布的链接已关闭。你可以编辑你的答案粘贴适当的信息吗?
  • 具体来说,试试$mpdf->packTableData = true;$mpdf->packTableData = true; (来自链接,以防它在未来被破坏)。否则,请通过 mpdf 中包含的 compress.php 脚本。
  • 一个好的答案是将大部分建议粘贴到答案中。 Stackoverfow 不是要成为交通管制员,而是要在这里掌握知识(只要它还活着;直到死亡将我们分开)
【解决方案3】:

您是否尝试查看 phpinfo() 输出以查看您设置的 memory_limit 值是否正在更改?尝试将该函数放在index.php 文件的顶部,看看ini_set('memory_limit', '256M'); 是否生效。

问候!

【讨论】:

    【解决方案4】:

    我发现不同步 () 标记会导致内存问题(和速度);清理进入 mPDF 的 HTML 解决了它。

    【讨论】:

      猜你喜欢
      • 2013-09-27
      • 1970-01-01
      • 2018-02-21
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多