使用phpmailer函数,必须使用双引号格式化变量内的电子邮件正在变成一场噩梦。
$body = "<div><h1>Hello, ".$foo."!</h1></div>";
对于电子邮件的整个主体来说都是这样的,因为我的编辑器(KomodoEdit)无法识别语法错误以及标记在字符串中的定义,所以很难对其进行故障排除。
我一直在寻找其他方法来实现这一点,例如heredoc方法,但是虽然这看起来更干净,但它仍然不允许我使用编辑软件的语法检查和标记折叠。< / p>
我的下一步是尝试这样的事情:
body.php
<div><h1>Hello, $foo !</h1></div>
的index.php
error_reporting(E_ALL);
$foo = 'Frank';
$page = include('body.php');
$body = <<<EOD
$page
EOD;
但这并没有发布任何内容,我甚至没有报告任何错误。我已经浏览了manual,但要么在语法中遗漏了某些内容,要么在使用<<<EOD
时出现逻辑错误。
答案 0 :(得分:2)
EOD;以前不能有任何空格。向左移动。然而,这仍然不会做你想要的。
ob_start();
include('body.php');
$page = ob_get_clean();
我永远不会调整我的应用程序以满足语法高亮或编辑器的任何其他功能!
答案 1 :(得分:0)
更新您的代码
<强>的index.php 强>
error_reporting(E_ALL);
$_REQUEST['foo'] = 'Frank';
ob_start();
include('body.php');
$page = ob_get_clean();
<强> body.php 强>
"<div><h1>Hello, ".$_REQUEST['foo']." !</h1></div>"
我们只能访问包含文件中的公共变量(请求等)
答案 2 :(得分:0)
试试这个:
1) index.php
<?php
error_reporting(E_ALL);
$foo = 'Frank';
$page = include('body.php');
echo <<<EOD
$page
EOD;
?>
2) body.php
<?php
return <<<RESULT
<div><h1>Hello, $foo !</h1></div>
RESULT;
?>
答案 3 :(得分:-1)
试试这个:
1) index.php
<?php
error_reporting(E_ALL);
$foo = 'Frank';
$page = include('body.php');
echo <<<EOD
$page
EOD;
?>
2) body.php
<?php
return "<div><h1>Hello, ".$foo." !</h1></div>";
?>