PHP - 读取动态生成(和呼应)HTML转换成字符串?(PHP - Read dynamical

2019-07-31 15:09发布

我有拉从数据库中的一些信息,并创建一些相对简单的动态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();

我想我也许能够使用的东西ILKE,为了达到目的,但勿庸置疑它没有工作。

所以,我怎么可以读取获取输出到浏览器,如果你要直接加载该文件,进入一个字符串与DOMPDF类使用HTML?

Answer 1:

两个问题。

首先,你不能说这样使用include_once PHP页面 - 查询字符串将被忽略。 你必须给id来report.php一些其他的方式。

其次,你正确缓冲输出。 但是,你传递的电流输出缓冲区DOMPDF,告诉它生成PDF输出缓冲区和丢弃输出缓冲区。 你可能想是这样的:

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

这会得到电流输出缓冲区,放弃它,并禁用输出缓冲。 然后,$ dompdf->流应该工作。



Answer 2:

怎么样用简单的HTTP请求来获取HTML文件,并比在$ DOMPDF对象加载它:

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

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



Answer 3:

BlackAura是在正确的轨道上。 的file_get_contents,正如其他人暗示不会沿着GET瓦尔(或POST)通过。 但是你可以使用卷曲做到这一点。 下面的代码应工作:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://YOURFULLURL.COM/report.php?id=1249642977');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$my_html = curl_exec($ch);
curl_close($ch);

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

希望帮助。

-Kevin



Answer 4:

简单地使用PHP file_get_contents这样:

$page_html = file_get_contents("page.php?id=number");

然后$ page_html传递到DOMPDF。

希望这可以帮助 :)



Answer 5:

我最终决定改变产生的HTML,使之成为返回一个HTML字符串的函数PHP页面。 这更是一个解决办法比的解决方案。

未来的Google这一页应该知道DOMPDF允许你使用一个网页上运行PHP联:

<script type="text/php">
   //some PHP here
</script>


Answer 6:

BlackAura有正确的想法。 你将产生的PDF输出缓冲区,然后丢弃一切。



文章来源: PHP - Read dynamically generated (and echoed) HTML into a string?
标签: php dompdf