如何将php导出为pdf一个大查询?
我有一个用php正确显示的30000多个座位的查询,但我无法将其导出为pdf。服务器不支持内存大小,我增加了最大内存限制,但它继续失败如何将php导出为pdf一个大查询?,php,mysql,pdf,export,Php,Mysql,Pdf,Export,我有一个用php正确显示的30000多个座位的查询,但我无法将其导出为pdf。服务器不支持内存大小,我增加了最大内存限制,但它继续失败 致命错误:允许的内存大小为8388608字节… 我可以这样做,以不饱和服务器的最大内存和导出pdf?是否可以执行每个单独的PDF页面,然后发送单个文件(PDF和所有文件) 任何选项都可以运行pdf,并将其与我共享 解决方案 我用这个简单的方法解决了这个问题 此解决方案是执行中间步骤=>在php中执行查询,然后显示一个按钮,该按钮使用以前保存在tmp文件中的查询运
致命错误:允许的内存大小为8388608字节…
我可以这样做,以不饱和服务器的最大内存和导出pdf?是否可以执行每个单独的PDF页面,然后发送单个文件(PDF和所有文件)
任何选项都可以运行pdf,并将其与我共享
解决方案
我用这个简单的方法解决了这个问题
此解决方案是执行中间步骤=>在php中执行查询,然后显示一个按钮,该按钮使用以前保存在tmp文件中的查询运行php到pdf转换。如果主机允许,这是最简单的操作,是通过创建自定义PHP.ini并设置
内存限制=64M
来设置更高的PHP内存限制。您可以通过phpinfo()
检查设置是否正常工作,只需记住删除用于检查phpinfo的行/文件,以避免向所有人公开PHP设置
如果这不起作用,您可以尝试微调一些性能设置
对于TCPDF,下面列出了这些设置,我建议您应用所有设置,并使用可减少内存消耗且不影响输出的做法。
例如:
- 如果您没有使用泰语,请编辑config/tcpdf_config.php文件,并将K_Thai_TOPCHARS常量设置为false李>
- 如果不需要扩展字符,请编辑config/tcpdf_config.php文件,并将默认字体设置为核心字体李>
- 默认情况下,TCPDF启用字体子集设置以减小嵌入式Unicode TTF字体的大小,此过程非常缓慢且需要大量内存,可以使用setFontSubseting(false)方法关闭李>
- 尽可能使用核心字体而不是嵌入式字体李>
- 如果没有严格要求,避免使用HTML语法(writeHTML和writeHTML方法)李>
- 将大的HTML块分割成更小的块李>
- 避免使用未严格要求的交易李>
最后一个选择是请您的主机提供商增加PHP内存限制(至少是临时的),或者升级到更好的主机计划。如果您的主机允许,最简单的方法是通过创建自定义PHP.ini并设置
memory\u limit=64M
来设置更高的PHP内存限制。您可以通过phpinfo()
检查设置是否正常工作,只需记住删除用于检查phpinfo的行/文件,以避免向所有人公开PHP设置
如果这不起作用,您可以尝试微调一些性能设置
对于TCPDF,下面列出了这些设置,我建议您应用所有设置,并使用可减少内存消耗且不影响输出的做法。
例如:
- 如果您没有使用泰语,请编辑config/tcpdf_config.php文件,并将K_Thai_TOPCHARS常量设置为false李>
- 如果不需要扩展字符,请编辑config/tcpdf_config.php文件,并将默认字体设置为核心字体李>
- 默认情况下,TCPDF启用字体子集设置以减小嵌入式Unicode TTF字体的大小,此过程非常缓慢且需要大量内存,可以使用setFontSubseting(false)方法关闭李>
- 尽可能使用核心字体而不是嵌入式字体李>
- 如果没有严格要求,避免使用HTML语法(writeHTML和writeHTML方法)李>
- 将大的HTML块分割成更小的块李>
- 避免使用未严格要求的交易李>
最后一个选择是请您的托管提供商增加PHP内存限制(至少是临时的),或者升级到更好的托管计划。我尝试了以下解决方案,效果很好 在第24行下面的wamp\apps\phpmyadmin3.3.9\config.inc.php文件中添加了以下代码:
$cfg['MemoryLimit'] = '128M';
And It works well;
在我的config.inc.php文件中插入第19-25行后:
/* End of servers configuration */
$cfg['DefaultLang'] = 'en-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
$cfg['MemoryLimit'] = '128M';
当我在过去遇到类似的问题时,这段代码对我很有用 我尝试了以下解决方案,效果很好 在第24行下面的wamp\apps\phpmyadmin3.3.9\config.inc.php文件中添加了以下代码:
$cfg['MemoryLimit'] = '128M';
And It works well;
在我的config.inc.php文件中插入第19-25行后:
/* End of servers configuration */
$cfg['DefaultLang'] = 'en-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
$cfg['MemoryLimit'] = '128M';
当我在过去遇到类似的问题时,这段代码对我很有用 如何生成PDF…?增加php中的内存限制。我已经尝试过
TCPDF
、DOMPDF
和Zend\u PDF
Zend
似乎是最快的(即2.5秒而不是10秒)。我强烈推荐。你只有8MB的内存?即使对于轻量级操作,这也太低了。如果要执行这些类型的操作,则需要更多内存。升级时间到了。您如何生成PDF…?增加php中的内存限制。我已经尝试了TCPDF
、DOMPDF
和Zend\u PDF
Zend
似乎是最快的(即2.5秒而不是10秒)。我强烈推荐。你只有8MB的内存?即使对于轻量级操作,这也太低了。如果要执行这些类型的操作,则需要更多内存。升级时间到了。我用托管php.ini(memory_limit=64M)进行了测试,但不允许。当前导出到excel、word或html时,大型查询没有显示任何错误,但问题只存在于托管php.ini(memory_limit=64M)的PDFI中,但我不允许。当前导出到excel、word或html时,大型查询没有显示任何错误,但问题仅限于PDF