PHP - 将动态生成(和回显)的HTML读入字符串?

bcm*_*cfc 3 php dompdf

我有一个文件从数据库中提取一些信息,并创建一些相对简单的动态HTML.

然后,DOMPDF可以使用该文件将其转换为PDF文档.DOMDPF使用GET变量来实现基本实现.

ob_start();
include_once("report.php?id=1249642977");

require_once("dompdf/dompdf_config.inc.php");

$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_contents());
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));

ob_end_clean();
Run Code Online (Sandbox Code Playgroud)

我以为我可能能够使用某些东西来实现目标但不出所料它没有用.

那么,如果要将文件直接加载到用于DOMPDF类的字符串中,如何读取输出到浏览器的HTML?

And*_*ore 6

如何使用简单的HTTP请求获取HTML文件,而不是将其加载到$ dompdf对象中:

   <?php
    //...
    $dompdf->load_html(file_get_contents("http://yoursite.net/report.php?id=1249642977"));
   //...
   ?>
Run Code Online (Sandbox Code Playgroud)

我不明白你为什么需要输出缓冲...


Bla*_*ura 5

两个问题.

首先,您无法使用include_once调用PHP页面 - 查询字符串将被忽略.您必须以其他方式将report.php提供给id.

其次,你正确缓冲输出.但是,您将当前输出缓冲区传递给DOMPDF,告诉它生成PDF到输出缓冲区,并丢弃输出缓冲区.你可能想要这样的东西:

$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_clean());
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));
Run Code Online (Sandbox Code Playgroud)

这将获得当前输出缓冲区,丢弃它,并禁用输出缓冲.然后$ dompdf->流应该有效.