我使用此代码生成QR码并显示它:
<?php
$aux = 'qr_img0.50j/php/qr_img.php?';
$aux .= 'd=Text&';
$aux .= 'e=H&';
$aux .= 's=4&';
$aux .= 't=P';
?>
<img width="250" src="<?php echo $aux; ?>" />
它可以毫无问题地生成并显示它, 但我不想显示,但将加载到"dompdf"(PHP PDF生成器)。 我发现,我无法给予dompdf&#34; $ aux&#34;变量(&#34;&lt; img src =&#39; $ aux&#39; /&gt;&#34;)。该变量返回正确的字符串,但dompdf无法显示它(可能是由于是一个PHP文件)。 我提出了file_get_contents,但令人惊讶的是,它返回了一个空白文件。
我用过:
file_put_contents('tempqr.png', file_get_contents($qrc));
由于权限错误,不,因为......
当我输入整个网址路径时,它已经复制了&#39;文件成功(http://localhost:2180/work/qr_img0.50j/php/qr_img.php?..。),但我认为这不是一个可靠的解决方案,因为端口和东西可能会随着时间的推移而改变。我安装了cURL,同样的问题仍然存在:它只显示完整的URL路径。我试着开始阅读&#39;将图像放入缓冲区,缓冲区保持空白。
也许有人可以帮助我(和其他读者),让这两个函数加载文件(可能没有整个http不可靠的东西?)。
或者可能有另一种方法从"qr_img0.50j"生成图像而不调用我不知道的php ...
答案 0 :(得分:0)
Dompdf(从0.6.1开始)将不再解析文档中的PHP。在将文档传递给Dompdf之前,您需要这样做。可能最简单的方法是渲染图像并将其作为数据uri插入到文档中。
如果QR发生器不是为命令行执行而设计的,则可能必须修改QR生成器才能在此流程中工作。理想情况下,它只是一个可调用函数,这是我为样本所假设的。
使用Dompdf 0.7.x:
<?php
// require dompdf autoloader, then ...
using Dompdf\Dompdf;
$image = qr_img('Text', 'H', '4', 'P'); // assumine PNG output
$html = '<img width="250" src="data:image/png;base64,' . base64_encode($image) . '" />';
$dompdf = new Dompdf();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream();
?>
仅供参考,同样的问题适用于file_get_contents
。它不解析文件的PHP。它只能用于获取文件本身。
无论用于获取文件的特定方法如何,结果都取决于源。从本地文件系统检索的文件将不解析其PHP。通过Web服务器检索的文件将。