Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将php导出为pdf一个大查询?_Php_Mysql_Pdf_Export - Fatal编程技术网

如何将php导出为pdf一个大查询?

如何将php导出为pdf一个大查询?,php,mysql,pdf,export,Php,Mysql,Pdf,Export,我有一个用php正确显示的30000多个座位的查询,但我无法将其导出为pdf。服务器不支持内存大小,我增加了最大内存限制,但它继续失败 致命错误:允许的内存大小为8388608字节… 我可以这样做,以不饱和服务器的最大内存和导出pdf?是否可以执行每个单独的PDF页面,然后发送单个文件(PDF和所有文件) 任何选项都可以运行pdf,并将其与我共享 解决方案 我用这个简单的方法解决了这个问题 此解决方案是执行中间步骤=>在php中执行查询,然后显示一个按钮,该按钮使用以前保存在tmp文件中的查询运

我有一个用php正确显示的30000多个座位的查询,但我无法将其导出为pdf。服务器不支持内存大小,我增加了最大内存限制,但它继续失败

致命错误:允许的内存大小为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块分割成更小的块
  • 避免使用未严格要求的交易
您还可以逐页导出,然后在本地合并生成的PDF文件


最后一个选择是请您的主机提供商增加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块分割成更小的块
  • 避免使用未严格要求的交易
您还可以逐页导出,然后在本地合并生成的PDF文件


最后一个选择是请您的托管提供商增加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