Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将数据发布到另一个文件并使用DomPDF进行渲染_Php_File Get Contents_Dompdf - Fatal编程技术网

Php 如何将数据发布到另一个文件并使用DomPDF进行渲染

Php 如何将数据发布到另一个文件并使用DomPDF进行渲染,php,file-get-contents,dompdf,Php,File Get Contents,Dompdf,我正在寻找一个程序来创建一些网上商店的产品使用DomPDF的PDF文件 PHP脚本: <?php require_once("../../dompdf_config.inc.php"); $postdata = http_build_query( array( 'id' => 150 ) ); $opts = array('http' => array( 'method' => 'POST', 'h

我正在寻找一个程序来创建一些网上商店的产品使用DomPDF的PDF文件

PHP脚本:

<?php
require_once("../../dompdf_config.inc.php");
$postdata = http_build_query(
    array(
        'id' => 150
    )
);
$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);
$context  = stream_context_create($opts);
$html = file_get_contents('product_pdf.php', false, $context);
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf");
?>
但它也不起作用。
你知道吗?

在这种情况下,你应该使用卷发。

你真的只遗漏了一点点。使用
file\u get\u contents()
时,PHP会通过本地文件系统将文件拉入。这意味着实际的PHP代码不会被解析,最终得到的是源代码的PDF

要获取生成的HTML,您必须通过完整URL(例如)将文档拉入。这样做的目的是通过web服务器获取文档,它将像处理任何请求一样交付生成的HTML

只要PHP设置
allow\u url\u fopen
为真(现在需要这样才能让dompdf对远程资源执行任何操作),您就可以执行以下操作:

<?php
require_once("../../dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html_file('http://example.com/product_pdf.php');
$dompdf->render();
$dompdf->stream("sample.pdf");
?>


我建议使用
$dompdf->load_html_file()
而不是将文档提取到变量中。这将提供最可预测的结果(至少在您更好地了解dompdf的工作原理之前)。

哦,虽然这是最简单的入门方法,但还有其他方法可以实现您的目标。例如,您可以重写product_pdf.php以使用缓冲,并在HTML生成结束时将缓冲区捕获到一个变量并将其提供给dompdf。
<?php
require_once("../../dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html_file('http://example.com/product_pdf.php');
$dompdf->render();
$dompdf->stream("sample.pdf");
?>