我第一次使用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
答案 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