【问题标题】:html2fpdf error: cannot modify header informationhtml2fpdf 错误:无法修改标头信息
【发布时间】:2015-10-19 22:01:33
【问题描述】:

我有一个使用 PHP 5.4 中的旧库的大项目,我正在尝试获取一个简单的 php 页面来生成 pdf。查看一个已知的、运行良好的 php 页面,我编写了这个测试页面,引用了似乎是 3.0 beta 版的 html2fpdf。我相信这是最后一个版本。它仍然可以在生产环境中使用,但是这个简单的 php 页面返回了这个错误:

Deprecated: Function set_magic_quotes_runtime() is deprecated in /media/psf/Home/apps/clean/fpdf.php on line 1805

Deprecated: Function set_magic_quotes_runtime() is deprecated in /media/psf/Home/apps/clean/fpdf.php on line 1828

Warning: Cannot modify header information - headers already sent by (output started at /media/psf/Home/apps/clean/fpdf.php:1805) in /media/psf/Home/apps/clean/fpdf.php on line 1678
FPDF error: Some data has already been output to browser, can't send PDF file

好的,阅读堆栈上的 set_magic_quotes 会告诉我升级库,这是我看不到的。查看第 1805 行,该函数已设置为 false。

我确定它在生产中被忽略了,但它显然正在停止我的 pdf 生成,因为它正在尝试发送标题。我不明白为什么它会在图书馆里。

以下测试在apache 2.4下php 5.4.33和5.6.8下运行,结果相同。

我没看到什么?

<?php
require_once($_SERVER['DOCUMENT_ROOT']. 'html2fpdf.php');
// header("Content-type:application/pdf");
ob_end_clean();
ob_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>    
<form action="review_template2.php" method="post" name="MainForm">
<p>This is the review_template.tpl.php</p>
</form>    
</body>
</html>    
<?php
$filename = 'saam.pdf';
$html=ob_get_contents();    
$pdf = new HTML2FPDF();
$pdf->AddPage();
$pdf->WriteHTML($html);
ob_end_clean();
$pdf->Output($filename, "D");

设置 php 标头时出现空白 pdf,但是当我将其注释掉时出现上述错误。 谢谢,山姆

【问题讨论】:

    标签: fpdf html2pdf


    【解决方案1】:

    您可以在&lt;?php 之后添加error_reporting(0);。这将禁用显示已弃用的错误消息,并允许您的脚本修改标题并显示 PDF。 但请注意,这将禁用所有错误报告,因此如果脚本中有另一个错误,您将不会收到通知。 或者,您可以使用error_reporting(E_ERROR | E_WARNING | E_PARSE); 仅显示对脚本有影响的错误。 或查看error_reporting() 上的文档。

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2012-02-28
      • 2021-11-15
      • 2017-10-30
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多