将函数中的值带入另一个php文件

时间:2014-11-09 08:45:09

标签: php function dompdf

我正在尝试清理我的文件结构,以管理发送带有dompdf附件的电子邮件。

然而,我无法解决如何单独包含html文件并仍保留值。我尝试使用函数,但它不起作用。

我有一个包含此文件的文件(pdf.php)

<?php 

function template_PDF($html) {

$html  ='<doctype>...';
$html .='<title>'.$pagetitle.'</title>';
$html .='<p>More stuff</p>';

} 

?>

我有另一个文件(processor.php)

include('pdf.php');

$pagetitle = $_POST['title']; // this is only an example

$ticketno = 'noyb'; // this is only an example

$html = template_PDF($html);

require_once("/home/clientname/public_html/framework/pdf/dompdf.php");

$dompdf=new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('a4', 'portrait');
$dompdf->render();
$pdf=$dompdf->output();

file_put_contents("/home/clientname/docs/REF".$ticketno.".pdf", $pdf); 

基本上只是想清理一下。我不是经过一些精心的解决方案。如果有人能帮助阐明如何将该功能带到我的文件并仍然保留值。该函数需要从文件中吐出基本上包含的值。

提前致谢 强尼

2 个答案:

答案 0 :(得分:1)

您需要传递template_PDF函数,无论它需要什么数据。从你的例子来看,这只是$ pagetitle。您还需要该函数将结果返回给您。所以现在你的功能应该变成:

function template_PDF($pagetitle) {

$html  ='<doctype>...';
$html .='<title>'.$pagetitle.'</title>';
$html .='<p>More stuff</p>';
return $html
}

然后你将该函数称为:

$html = template_PDF($pagetitle);

您为函数提供从$ _POST(以及您要添加的任何其他相关数据)检索的页面标题,该函数将返回已完成的html。

答案 1 :(得分:1)

您应该使用占位符创建HTML文件,而不是在variable内使用HTML膨胀您的PHP:

HTML

<!DOCTYPE html>
<head>
    <title>{title}</title>
</head>
<body>
    {content}
</body>
</html>

此模板中的占位符为{title}{content} 现在你要做的是访问模板文件:

$html = file_get_contents('location/template.html');

下一步是替换占位符,可以这样做:

$needles = array(
    '{title}',
    '{content}',
);
$replaces = array(
    $_POST['txt_title'],/* don't forget to sanitize user input*/
    $_POST['txt_content'],
);
$html = str_replace($needles, $replaces, $html);

然后将$html传递给DOMPDF