【发布时间】: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,但是当我将其注释掉时出现上述错误。 谢谢,山姆
【问题讨论】: