我正在使用 ob_get_contents() 从 php 文件创建一个 html 文件。在开发机器上有时它可以工作,但在测试机器上它不起作用。
<html>
<body>
<div>
//some html content
</div>
</body>
</html>
<?php
ob_start();
file_put_contents('./pdfreportresult.html', ob_get_contents());
require_once (APP_DIR . 'assessment/wkhtmltopdf/snappy-master/src/autoload.php');
use Knp\Snappy\Pdf;
$snappy = new Pdf(APP_DIR . 'assessment/wkhtmltopdf/wkhtmltopdf.exe');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="report.pdf"');
echo $snappy->getOutput(APP_DIR . 'assessment/pdfreportresult.html');
ob_end_clean();
?>
我检查了测试机的 php.ini 中的 output_buffering,它就像在开发机器上一样“打开”。当我检查我创建的 html 文件“pdfreportresult.html”时,它为空或存在一半内容。
也许问题可能与缓冲区大小有关,我尝试使用 ob_clean() 而不是 ob_end_clean() 仍然无法正常工作。