Html2fpdf错误:无法修改报头信息



我有一个大项目,在PHP 5.4中使用这个旧库,我试图得到一个简单的PHP页面来生成pdf。看看一个已知的,良好的工作php页面,我写了这个测试页面引用html2fpdf,这似乎是3.0版测试版。我相信这是最后一个版本了。它在生产环境中仍然可以工作,但是这个简单的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 on stack告诉我升级库,这是不可能的,我可以看到。看看第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,但当我将其注释掉时出现上述错误。谢谢,山姆

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

最新更新