gpt4 book ai didi

php - 创建 PHP 模板的方法(即带有变量的 html)?

转载 作者:可可西里 更新时间:2023-10-31 23:51:55 24 4
gpt4 key购买 nike

我正在设计我的 html 电子邮件,这些将是一个 html block ,其中包含我可以存储在 $template 变量中的变量。

我的问题来自变量部分的存储。将我所有的 html 放入 php 中,使用起来很麻烦。

例如,下面的代码适用于简单的电子邮件,但一旦我开始获取嵌套表格等,它就会变得非常困惑...

$template.= 'Welcome ' . $username . '<br /><br /><br />';
$template.= 'Thank-you for creating an account <br /><br />';
$template.= 'Please confirm your account by click the link below! <br /><br />';
$template.= '<a href="' . $sitepath . '?email=' . $email . '&conf_key=' . $key . '" style="color: #03110A;"><font size="5" font-family="Verdana, Geneva, sans-serif" color="#03110A">' . $key . '</font></a>';
$template.='</body></html>';

有没有办法我仍然可以将 html 存储在 $var 中但不必像这样写?

最佳答案

对于电子邮件,我非常喜欢基于文件的模板和非常基本的模板解析器。这样做的一个好处是客户和领域专家可以阅读甚至编辑文本。另一个是你不依赖变量范围,就像 heredoc 一样。我做这样的事情:

带有电子邮件模板的文本文件:

Welcome, [Username]

Thank you for creating an account.
Please ... etc.

PHP 客户端代码:

$templateData = array ('Username'=>$username...); // get this from a db or something in practice
$emailBody = file_get_contents ($templateFilePath);// read in the template file from above
foreach ($templateData as $key => $value){
$emailBody = str_replace ("[$key]", $value, $emailBody);
}

当然,如果您的电子邮件需要包含文本 [用户名],您就会遇到麻烦,但您可以想出自己的伪代码约定。对于包含循环和条件之类的 html 或更复杂的电子邮件,您可以扩展这个想法,但使用模板引擎更容易和更安全。我喜欢 PHPTAL,但它拒绝做纯文本。

编辑:对于电子邮件,您可能需要纯文本版本和 HTML 版本。不过,使用函数或方法加载文件并进行替换使得添加第二种格式非常轻松。

关于php - 创建 PHP 模板的方法(即带有变量的 html)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2905696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com