我从TCPDF切换到domPDF,因为在从html到pdf创建发票时处理起来似乎更方便(我在PHP上相当低职业:))。现在我创建了html文件作为PDF文件,我发现它不会在PDF中输出任何PHP - 因为我的sql数据库中的数据应该填充PDF,这有点问题。
我看到你可以在src-folder中包含的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文件中是否更明智?
提前多多感谢!
答案 0 :(得分:0)
您的file_get_contents("testdomhtml.php")
将获得文件的实际内容,并且不会在其中执行任何代码。而是使其可访问Web并将URL传递到此页面:
$dompdf->load_html_file('http://yourdomain.ext/testdomhtml.php');
答案 1 :(得分:0)
你可以做这样的事情(没有测试代码)。取代
$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?