这是一个经常讨论的问题,但到目前为止,没有任何解决方案似乎适合我的问题。 我正在使用$ pdf = new FPDF()生成pdf; 。这很好用。但现在我想要一个页码的页脚。在尝试了很多我发现的事情后,如果要设置页脚,则需要使用$ pdf = new yourPDFclassName()创建一个实例; (扩展了父FDF类)。
再次运行整个过程我收到错误:第16行的/..blabla/yourPDFclassName.php中允许的内存大小为33554432字节(试图分配77个字节)
当我调用子类时,是否有人知道为什么会出现此错误?我的意思是它适用于父类...而顺便说一句,77字节远小于33554432字节......嗯
class REPORTSPDF extends FPDF { .... }
16: $pdf = new REPORTSPDF();
第16行是REPORTSPDF的构造函数。第16行之前没有其他行。当$ pdf = new REPORTSPDF()被调用时,它就崩溃了。
没有页脚功能我有同样的错误。奇怪的是,当我将第16行更改为
时$pdf = new FPDF();
一切正常(除了我没有页脚)。
答案 0 :(得分:2)
有3种方法可以增加内存限制
使用配置文件
更改php.ini中的内存限制
memory_limit = 32M
使用PHP
的ini_set( 'memory_limit的', '32M');
使用htaccess
php_value memory_limit 32M
共享主机
php_value memory_limit 32M
专用或VPS优化
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
答案 1 :(得分:2)
错误消息表示在尝试分配附加 77个字节时,超出了33554432字节的内存限制。
只有两种方法可以解决这个问题:优化子类中的代码,这样就不需要那么多的内存,或者增加php.ini中的内存限制(或使用等效的方法来操作PHP配置)。
答案 2 :(得分:1)
听起来你的代码中有无限循环。尝试做一个简单的hello-world-test,看看会发生什么,并检查代码中的所有循环。
答案 3 :(得分:0)
更改你的memory_limit。
试,
ini_set('memory_limit','128M');
答案 4 :(得分:0)
我自己没有使用它,但FPDF的FPDF2File扩展是尝试逐页构建PDF页面而不是纯粹在内存中