(内联)PHP 在 domPDF 7.0 中
(Inline) PHP in domPDF 7.0
我从 TCPDF 切换到 domPDF,因为在创建从 html 到 pdf 的发票时处理起来似乎更方便(我在 PHP 方面相当低级专业人士 :))。现在我将 html 文件创建为 PDF 文件,我认识到它不会在 PDF 中输出任何 PHP - 因为来自我的 sql 数据库的数据应该填充 PDF 它有点像问题。
我看到您可以在 src 文件夹中包含的 options.php 中启用 PHP,我尝试按照手册中的说明进行操作(并且还尝试了各种其他代码行)但它就是不想工作:
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require_once ("$root/../xxx/dompdf/autoload.inc.php");
use Dompdf\Dompdf;
use Dompdf\Options;
$options = new Options();
$options->setIsPhpEnabled('true');
$dompdf = new Dompdf($options);
$dompdf->loadHtml(file_get_contents("testdomhtml.php"));
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream("bla",array("Attachment"=>0));
PDF 已显示,但没有任何 PHP 代码的输入。
如果有人这么好心,我也很想知道启用 PHP 是一种安全风险的原因和程度,因为我实际上想将其用于我的业务。在不加载外部 html 和 css 文件的情况下将其全部包装在主 php 文件中是否更明智?
非常感谢!
您的 file_get_contents("testdomhtml.php")
将获取文件的实际内容,并且不会执行其中的任何代码。取而代之的是让它可以通过网络访问并将 URL 传递给此页面:
$dompdf->load_html_file('http://yourdomain.ext/testdomhtml.php');
您可以这样做(未测试代码)。替换
$dompdf->loadHtml(file_get_contents("testdomhtml.php"));
有
ob_start();
include 'testdomhtml.php';
$output = ob_get_clean();
$dompdf->loadHtml($output);
更多选项How to execute and get content of a .php file in a variable?
我从 TCPDF 切换到 domPDF,因为在创建从 html 到 pdf 的发票时处理起来似乎更方便(我在 PHP 方面相当低级专业人士 :))。现在我将 html 文件创建为 PDF 文件,我认识到它不会在 PDF 中输出任何 PHP - 因为来自我的 sql 数据库的数据应该填充 PDF 它有点像问题。
我看到您可以在 src 文件夹中包含的 options.php 中启用 PHP,我尝试按照手册中的说明进行操作(并且还尝试了各种其他代码行)但它就是不想工作:
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require_once ("$root/../xxx/dompdf/autoload.inc.php");
use Dompdf\Dompdf;
use Dompdf\Options;
$options = new Options();
$options->setIsPhpEnabled('true');
$dompdf = new Dompdf($options);
$dompdf->loadHtml(file_get_contents("testdomhtml.php"));
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream("bla",array("Attachment"=>0));
PDF 已显示,但没有任何 PHP 代码的输入。
如果有人这么好心,我也很想知道启用 PHP 是一种安全风险的原因和程度,因为我实际上想将其用于我的业务。在不加载外部 html 和 css 文件的情况下将其全部包装在主 php 文件中是否更明智?
非常感谢!
您的 file_get_contents("testdomhtml.php")
将获取文件的实际内容,并且不会执行其中的任何代码。取而代之的是让它可以通过网络访问并将 URL 传递给此页面:
$dompdf->load_html_file('http://yourdomain.ext/testdomhtml.php');
您可以这样做(未测试代码)。替换
$dompdf->loadHtml(file_get_contents("testdomhtml.php"));
有
ob_start();
include 'testdomhtml.php';
$output = ob_get_clean();
$dompdf->loadHtml($output);
更多选项How to execute and get content of a .php file in a variable?