HTML2PDF 如何将 id 传递给要转换的 html 站点

问题描述

我已经开始使用 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'];
}