FPDF致命错误:允许的内存大小为33554432字节(PHP)

FPDF致命错误:允许的内存大小为33554432字节(PHP),php,fpdf,Php,Fpdf,这是一个经常讨论的问题,但到目前为止,似乎没有解决方案适合我的问题。 我正在生成一个带有$pdf=new FPDF;的pdf。这个很好用。但是现在我想要一个页脚和页码。在尝试了很多东西之后,我发现,如果你想设置一个页脚,你需要用$pdf=newyourpdfclassname创建一个实例;它扩展了父FDF类 再次运行整个过程时,我收到一个错误:允许的内存大小为33554432字节,已耗尽。我试图在第16行的/.blabla/yourPDFclassName.php中分配77个字节 有人知道为什么

这是一个经常讨论的问题,但到目前为止,似乎没有解决方案适合我的问题。 我正在生成一个带有$pdf=new FPDF;的pdf。这个很好用。但是现在我想要一个页脚和页码。在尝试了很多东西之后,我发现,如果你想设置一个页脚,你需要用$pdf=newyourpdfclassname创建一个实例;它扩展了父FDF类

再次运行整个过程时,我收到一个错误:允许的内存大小为33554432字节,已耗尽。我试图在第16行的/.blabla/yourPDFclassName.php中分配77个字节

有人知道为什么我调用子类时会发生此错误吗?我的意思是它与父类一起工作。。。顺便说一句,77字节比33554432字节小得多。。。嗯

class REPORTSPDF extends FPDF { .... }

16: $pdf = new REPORTSPDF();
第16行在REPORTSPDF的构造函数中。第16行之前没有其他行。当调用$pdf=new REPORTSPDF时,它就会崩溃

如果没有页脚函数,我也会有同样的错误。奇怪的是当我把第16行改成

$pdf = new FPDF();
除了没有页脚外,一切正常。

增加内存限制 有3种方法可以增加内存限制

使用配置文件

更改php.ini中的内存限制

内存限制=32M

使用PHP

ini_设置‘内存限制’,‘32M’

使用htaccess

php_值内存_限制32M

不同服务器中的方法 共享主机

专用或VPS优化


改变你的记忆限制

试试看


错误消息表示,在尝试分配额外的77字节时,超出了33554432字节的内存限制


只有两种方法可以解决这个问题:要么优化子类中的代码,这样就不需要那么多内存;要么在php.ini中增加内存限制;要么使用等效的方法来处理php配置。

听起来代码中有一个无限循环。试着做一个简单的hello world测试,看看会发生什么,并检查代码中的所有循环。

我自己没有使用过它,但FPDF的扩展是一种尝试,它是一页一页地构建到磁盘,而不是纯粹在内存中构建PDF

消除这个问题会比解决它更好吗?生成pdf不应该使用!32MB!ram@oezi那就更好了,我想,如果它的共享服务器,然后16M甚至好。你能把你的代码特别是前16行的问题发生在哪里?您的pdf中是否有可能导致问题的循环,或者一个简单的hello world都不起作用?如果你不使用页脚,你自己的课还能用吗?我在第一篇文章中更新了信息。添加页脚显然会消耗更多内存,因为整个内容都必须保存在内存中。这就是为什么不添加页脚时不会超过内存限制的原因。等等,如果第16行在REPORTSPDF的构造函数中,并且它创建了REPORTSPDF的一个实例,那么这不会在循环中结束吗?@Andrei-怀疑对循环的引用是问题的症结所在,那么代码应该简单地调用parent::\u construct并使用$thisreferences@Mark-真的,对不起。。。我认为这已经足够清楚了。正如对japanpro所说的:消除这个问题不是比解决它更好吗?生成pdf不应该使用!32MB!ramit在构造函数中确实有一个循环。。。谢谢你的帮助
php_value memory_limit 32M
ssh -lroot domain.com

locate php.ini

vi /usr/local/php/etc/php.ini

edit to 

memory_limit=32M;

save file

httpd restart

/sbin/service httpd restart
ini_set('memory_limit','128M');