好,我得到这个错误尝试使用PHP类FPDF:
FPDF error: Some data has already been output, can't send PDF file (output started at
/mnt/webc/e1/12/5691512/htdocs/adminpanel/fpdf/test.php:1)
我的test.php
<?php
require_once("fpdf.php");
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
有没有空格或任何东西......那么,是错误???
它是becouse两个原因
1-有开口之前没有前导空间2-是一些数据已被输出之前
2振振有辞的解决办法是去fpdf.inc.php
找到这个函式
function Output($name='', $dest='') {
然后在这个函数的认定中写在开始
ob_clean();
这将清除以前的输出。
对我来说,这是废弃警告。 我加了&〜E_DEPRECATED我的error_reporting在我的php.ini并重新启动Apache的。
我只活了服务器同样的问题。 但它的工作,在本地机器。 在文件还其不工作服务器上开始添加BOM。 但是,在本地机器上工作。 一些变化需要在现场的代码。
1.将ob_start()在你的文件的第一行。
例:
ob_start();
$DOCROOTPATH = $_SERVER['DOCUMENT_ROOT'];
$DOCROOTBASEPATH = dirname($_SERVER['DOCUMENT_ROOT']);
include_once($DOCROOTPATH."/lib/commonarray.inc");
include_once($DOCROOTPATH."/includes/class.payslip.php");
include_once($_SERVER['DOCUMENT_ROOT']."/menucontrol.php");
define('FPDF_FONTPATH','fpdf/font/');
require('fpdf/fpdf.php');
2.之后,$ PDF - >输出(),你应该把ob_end_flush()函数在同一文件中。
例:
$pdf=new PDF();
$pdf->Open();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
$pdf->pdfAllPages();
$pdf->Output();
ob_end_flush();
现在去点击浏览器,看看你想要的PDF格式。
(OR)有些编辑在文件的开头添加BOM。
查看你的文件以十六进制和删除