如何使用php文件中指定的变量加载phtml文件

时间:2015-05-29 08:12:53

标签: html php email-templates

我正在尝试从php文件中加载或获取phtml中的所有内容

除了phtml文件中的变量没有加载值

外,一切正常

这是我的php文件

<?php
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$code = rand(11111,99999);
$emailSubject = 'Email Verification';
$userEmail = 'some@some.com';

function loadEmailTemplate($pagelink='') {

$page = 'email-templates/' . $pagelink . '.phtml';
$pageContent = '';

ob_start();
include($page);
$pageContent = ob_get_contents();
ob_end_clean();

return $pageContent;
}

$mailBody = loadEmailTemplate('emailtemplate');

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: no-reply-some@some.com\r\n"."X-Mailer: php";
mail($userEmail, $emailSubject, $mailBody, $headers);
?>

我的emailtemplate.phtml是

<html>
<body>
<div style="background-color: #bb4e4e; width:80%; color: #fff;">
 Thank you for registering <?php echo $firstname; ?>, your verification code is <?php echo $code; ?>.
</div>
</body>
</html>

和我在电子邮件中的输出或者如果我回显$ mailBody是

 Thank you for registering <?php echo $firstname; ?>, your verification code is <?php echo $code; ?>.

但我的输出应该是

Thank you for registering John, your verification code is 52256.

这意味着phtml文件加载正常,但我想加载php文件中定义的变量值,我认为我们在定义php变量后加载phtml文件的内容,这将自动分配变量值,但它不是,我我错了。有些人可以帮我找到任何方法。

谢谢

2 个答案:

答案 0 :(得分:0)

您需要告诉Apache处理php等文件。

添加:

<FilesMatch "\.ph(p[2-6]?|tml)$">
   SetHandler application/x-httpd-php
</FilesMatch>

到您的apache配置或.htaccess文件

有关详情,请参阅:https://php.net/manual/ro/install.unix.apache2.php

答案 1 :(得分:0)

要解决您的问题,您只需在phtml文件中添加全局定义。

这是你的phtml应该是什么样的

<?php global $firstname, $lastname; ?>
<html>
<body>
<div style="background-color: #bb4e4e; width:80%; color: #fff;">
 Thank you for registering <?php echo $firstname; ?>, your verification code is <?php echo $code; ?>.
</div>
</body>
</html>