我正在尝试清理我的文件结构,以管理发送带有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);
基本上只是想清理一下。我不是经过一些精心的解决方案。如果有人能帮助阐明如何将该功能带到我的文件并仍然保留值。该函数需要从文件中吐出基本上包含的值。
提前致谢 强尼
答案 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