我要转换的页面是通过PHP从MySQL数据库动态生成的。换句话说,页面上的信息取决于所选对象的Id。所以我通常会有这样的网址
renal_prescRequest_review.php?id=4
我正在使用html2pdf
,到目前为止,我无法执行转换。当我像这样直接传递id=2
时
// get the HTML
ob_start();
include("renal_clinicalTrial_review.php?id=2");
$content = ob_get_clean();`
我收到这些错误:
警告:include(renal_prescRequest_review.php?id = 2)[function.include ]:无法打开流:没有这样的文件或目录 在/ home / renalmed /的public_html /测试/测试/ renal_prescRequest_pdf.php 在第5行
警告:include(renal_prescRequest_review.php?id = 2) [function.include]:无法打开流:没有这样的文件或目录 在/home/renalmed/public_html/testing/test/renal_prescRequest_pdf.php 在第5行
警告:include()[function.include]:打开失败 'renal_prescRequest_review.php?id = 2'表示 夹杂物(包含路径= ':/ usr / lib中/ PHP:在/ usr /本地/ LIB / PHP') 在/ home / renalme / public_html / testing / test / renal_prescRequest_pdf.php上 LINE5。
令人着迷的是,这些错误会抛出到应该显示实际HTML的PDF文档中。我已经有很长一段时间了。请帮忙。
答案 0 :(得分:2)
您不能在包含文件中包含查询字符串。
对此的一个解决方案是将renal_prescRequest_review.php的代码传输到要将html转换为pdf的文件中。
以下是示例代码。
<?php
/**
* HTML2PDF Librairy - example
*
* HTML => PDF convertor
* distributed under the LGPL License
*
* @author Laurent MINGUET <webmaster@html2pdf.fr>
*
* isset($_GET['vuehtml']) is not mandatory
* it allow to display the result in the HTML format
*/
// get the HTML
ob_start();
// database connection here
require_once ( 'database-connection.php' );
// get the id
$id = $_GET['id'];
// Retrieve record from database
// query code here
?>
<page backleft="0mm" backtop="0mm" backright="0mm" backbottom="0mm">
ID: <?php echo $id;?>
<!--other html and php codes here.-->
</page>
<?php
$content = ob_get_clean();
// convert to PDF
require_once('../html2pdf/html2pdf.class.php');
try
{
$html2pdf = new HTML2PDF('P', array(200,300), 'en', true, 'UTF-8', array(0, 0, 0, 0));
//$html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', 0);
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content);
//$html2pdf->Output('test.pdf','D'); // force download pdf
$html2pdf->Output('test.pdf'); // display only
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
答案 1 :(得分:1)
我不确定你可以在include中使用get变量。使用带有file_get_contents函数的URL。或者删除get变量id并在include之前分配它,在包含的脚本中使用isset检测它。
答案 2 :(得分:0)
Warning: include(renal_prescRequest_review.php?id=2)
您不能包含此类文件。您在include语句中指定了一个查询字符串,其中PHP只是期望一个路径。所以PHP期望找到一个名为renal_prescRequest_review.php?id=2
的文件(换句话说,它不是在寻找renal_prescRequest_review.php
)。您的PHP应该看起来像
include('renal_prescRequest_review.php');
答案 3 :(得分:0)
您可以对此使用会话并删除包含文件
上的查询字符串session_start();
// get the HTML
ob_start();
$_SESSION['id'] = 2;
include("renal_clinicalTrial_review.php");
$content = ob_get_clean();
在renal_clinicalTrial_review.php中,输入session_start(); 你现在可以使用会议了。
答案 4 :(得分:0)
您不能包含这样的文件:
include("renal_clinicalTrial_review.php?id=2");
你应该这样做:
include("renal_clinicalTrial_review.php");
然后将参数传递给调用页面。
例如,如果您的代码保存为test.php
,请按以下方式调用:
test.php?id=2