我正在尝试从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文件的内容,这将自动分配变量值,但它不是,我我错了。有些人可以帮我找到任何方法。
谢谢
答案 0 :(得分:0)
您需要告诉Apache处理php
等文件。
添加:
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
到您的apache配置或.htaccess
文件
答案 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>