我创建了一个pdf.php
<?php
include("mpdf60/mpdf.php");
$url = $_GET['url'];
ob_start();
include($url);
$html = ob_get_clean();
$mpdf=new mPDF('utf-8', 'A3-L');
$mpdf->SetDisplayMode('fullpage');
$mpdf->WriteHTML($html);
$mpdf->Output();
exit;
?>
但是当传递参数例如:
<?php
$url = 'gerencial_consad.php?mes='.$mes.'&ano='.$ano.'&menu=N';
?>
<a href="pdf.php?url=<?php echo $url; ?>">[ Gerar PDF ]</a>
创建文件PDF时出错:
警告:include(gerencial_consad.php?mes = 01):无法打开流:第7行的C:\ wamp64 \ www \ codforv2 \ pdf.php中的结果太大调用堆栈
1 0.0005 240264 {main}()... \ pdf.php:(!)警告:include():无法打开'gerencial_consad.php?mes = 01'以包含(include_path ='。; C:\ php \ pear ')在第7行的C:\ wamp64 \ www \ codforv2 \ pdf.php中调用堆栈
1 0.0005 240264 {main}()... \ pdf.php:
请帮帮我!!!!
谢谢!
您不希望包含URL,您希望使用HTTP客户端下载URL的内容。
最简单的方法,可能与allow_url_fopen
ini设置有限,是使用file_get_contents
功能。
您需要将整个URL传递给该函数:
$url = $_GET['url']; // http://example.com/
$html = file_get_contents($url);
$mpdf->WriteHTML($html);
警告:通过使用未过滤和未经过过滤的用户输入(直接$_GET['url']
),您将在应用程序中打开一个安全漏洞。始终将输入限制为您认为安全的内容。
您最好只从请求中获取URL的参数,并将最终的URL组合在一起。