php mpdf内存限制错误

时间:2013-03-18 13:52:07

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

我第一次使用mpdf库,一切正常。 我写了一个脚本来创建pdf文件,其中包含一个274行的表。当我运行脚本时,我得到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

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

问候!

答案 3 :(得分:0)

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

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

的ini_set( “memory_limit的”, “128M”); $ mpdf = new \ Mpdf \ Mpdf();

它正在工作!!!

更多细节:https://mpdf.github.io/troubleshooting/memory-problems.html