[英]Fatal error using FPDF:Some data has already been output, can't send PDF file?
[英]FPDF error: Some data has already been output, can't send PDF file
好吧,我在尝试使用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();
?>
没有空格或任何东西...那么错误在哪里???
一些编辑器在文件的开头添加BOM 。
以十六进制查看文件并将其删除
这是因为两个原因
1-在开头之前没有前导空间2-在之前已经输出了一些数据
2共振的解决方案是去fpdf.inc.php
并找到这个功能
function Output($name='', $dest='') {
然后在定义此功能时将其写入开始
ob_clean();
这将清除先前的输出。
对我来说,这是弃用警告。 我在php.ini中的error_reporting中添加了&〜E_DEPRECATED,并重新启动了Apache。
我只在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-> Output()之后,应将ob_end_flush()放在Same File中。
例:
$pdf=new PDF();
$pdf->Open();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
$pdf->pdfAllPages();
$pdf->Output();
ob_end_flush();
现在转到浏览器并查看所需的pdf。
(或)某些编辑器在文件的开头添加BOM 。
以十六进制查看文件并将其删除
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.