问题描述
我已经开始使用 HTML2PDF (https://www.html2pdf.fr/) 来创建发票,现在以下代码有效:
try {
ob_end_clean();
ob_start();
include('../faktura/fa.PHP');
$html = ob_get_contents();
ob_end_clean();
$content = $html;
$html2pdf = new Html2Pdf('P','A4','cs',true,"UTF-8");
$html2pdf->setDefaultFont('freeserif');
$html2pdf->pdf->SetFont('freeserif');
$html2pdf->writeHTML($content);
$pdfContent = $html2pdf->output('my_doc.pdf','S');
} catch (Html2PdfException $e) {
$html2pdf->clean();
$formatter = new ExceptionFormatter($e);
echo $formatter->getHtmlMessage();
}
fa.PHP
的内容被转换为 pdf,但是如果我将其中一行更改为:
include('../faktura/fa.PHP?id=105');
注意我只添加了?id=105
,它只返回一个空白页。
PHP 文件 fa.PHP 包括:
$id = (int) $_GET['id'];
我需要做的是将 ID 传递给该 PHP 脚本,以便生成确切订单的发票。
解决方法
Include
基本上意味着“将代码从该文件复制到此处”。
因此,如果您更改包含的文件代码 $id = (int) $_GET['id'];到 $id = $thatId;
在 include() 函数之前,你需要写 $thatId = 105; 包含的文件将能够访问该变量。
文件 A:
$id = 105;
include('../faktura/fa.php');
文件 fa.php
//$id = (int) $_GET['id']; // no need this anymore as we've declared a $id variable with a value;
// .. Do something with $id
// .. for example:
echo $id; //will print 105
或者,如果您希望 fa.php 继续使用查询参数和使用您的发票 (2pdf) 代码:
if(!isset($id) && isset($_GET['id'])) {
$id = (int) $_GET['id'];
}