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

将函数中的值放入另一个php文件,php,function,dompdf,Php,Function,Dompdf,我正在尝试清理我的文件结构,以便管理带有dompdf附件的电子邮件的发送 然而,我不能完全解决如何单独包含html文件,并且仍然保留这些值。我试着用一个函数,但它不工作 我有一个包含这个的文件(pdf.php) 基本上只是想把事情弄清楚。我不是在寻求一个精心设计的解决方案。如果有人能帮助阐明如何将该函数带到我的文件中,并且仍然保留这些值。该函数需要从其包含的文件中吐出值 提前谢谢 Jonny您需要传递模板PDF函数所需的任何数据。根据您的示例,这只是$pagetitle。您还需要函数将结果返回给

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

然而,我不能完全解决如何单独包含html文件,并且仍然保留这些值。我试着用一个函数,但它不工作

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

基本上只是想把事情弄清楚。我不是在寻求一个精心设计的解决方案。如果有人能帮助阐明如何将该函数带到我的文件中,并且仍然保留这些值。该函数需要从其包含的文件中吐出值

提前谢谢
Jonny

您需要传递模板PDF函数所需的任何数据。根据您的示例,这只是$pagetitle。您还需要函数将结果返回给您。因此,现在您的函数应该是:

function template_PDF($pagetitle) {

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

您将从$_POST中检索到的页面标题(以及您想要添加的任何其他相关数据)赋给函数,函数将返回完整的html。

您应该创建一个带有占位符的html文件,而不是在
变量中用html填充PHP:

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

绝对不清楚,您想做什么?出了什么问题?还有一个注意事项-您的函数
template\u PDF
不会返回任何内容。在it.hi@u_mulder中使用
return
语句-我正在尝试获取一个html片段,用于使用dompdf创建pdf表单。如果我只是将它添加到processor.php文件中,它就可以工作了,但我正在尝试解决如何将它保存在外部。它只是让我的代码更容易格式化。至于我的理解,它是有限的。这就是我问的原因。我只是想要一个简单的例子。如何编写一个函数,该函数可以包含将包含在其中的页面中的值。我的问题也很明显。我在努力学习。。如何在函数中用值包装一些html,然后将该函数包含在另一个文件中。你想要多清楚?谢谢。但是如果我不仅仅有pagetitle,我还有很多值,我通常会在一个函数中包含3-4个参数。如果你需要传递更多的数据,你应该先把它们放在一个数组中,然后简单地传递数组。然后接收函数可以检查它期望的数组索引。哦,哇,这就是他们所说的模板化。像smarty和小胡子?我喜欢。从来没有人对我解释得这么简单。谢谢我会在午夜之前试试这个,然后再给你回复。我认为这将非常有效,并允许我使用它作为我拥有的许多模板的一部分。感谢heaps@DarkBeeYes,这是最基本的模板。祝你好运:)
function template_PDF($pagetitle) {

$html  ='<doctype>...';
$html .='<title>'.$pagetitle.'</title>';
$html .='<p>More stuff</p>';
return $html
}
$html = template_PDF($pagetitle);
<!DOCTYPE html>
<head>
    <title>{title}</title>
</head>
<body>
    {content}
</body>
</html>
$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);