我有一個很大的項目在PHP 5.4中使用這個舊的庫,我試圖讓一個簡單的PHP頁面生成一個PDF。看看一個已知的,良好的工作PHP頁面我寫了這個測試頁面引用html2fpdf,它似乎是3.0版測試版。我相信這是最後一個版本。它仍然工作在生產,但這個簡單的PHP頁面返回此錯誤:html2fpdf錯誤:無法修改標題信息
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
OK,閱讀有關堆棧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,但是當我把它註釋掉時出現上述錯誤。 thx,sam