我尝试使用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();
?>
没有空白或任何东西......那么错误在哪里???
答案 0 :(得分:2)
有些编辑在文件开头添加BOM。
以十六进制格式查看文件并将其删除
答案 1 :(得分:0)
这是因为两个原因
1 - 开幕前没有领先空间 2 - 是在
之前输出的一些数据2共振的解决方案是 转到fpdf.inc.php
找到这个功能
function Output($name='', $dest='') {
然后在这个函数的定义中,在开始时写这个
ob_clean();
这将清除先前的输出。
答案 2 :(得分:0)
对我来说,这是弃用警告。我添加了&amp; ~E_DEPRECATED到我在php.ini中的error_reporting并重新启动Apache。
答案 3 :(得分:-1)
我在Live Server中遇到了同样的问题。但它在本地机器上工作。在文件的开头添加BOM也在Server上不起作用。但在本地机器工作。您的实时代码需要进行一些更改。
<强> 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-&gt; Output()之后,您应该将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 。
以十六进制格式查看文件并将其删除