我正在编写一个PHP脚本,每晚都会通过cron发送一封电子邮件。在这个脚本中,我有多个输出特定文本的函数。然后我尝试在电子邮件中发送这些功能的内容。由于某种原因,电子邮件正常,但内容的主体显示为空。如果有更好的方法可以做到这一点,我一定会接受它。
function function1() {
global $new;
echo "<p>";
while ($row = mysql_fetch_array($query)) $content = $row["COUNT(column1)"];
if ($content != 0) echo "output1";
else echo "output2";
echo "</p>";
}
$emailMessage = function1().function2().function3();
if ($_GET['version'] == "email") {
mail ($emailTo, $emailSubject, stripslashes($emailMessage));
}
else echo $emailMessage;
显然代码有点混淆,但总体大纲就在那里。
答案 0 :(得分:4)
echo
将输出发送到标准输出,它不会从函数返回它。试试这个。
ob_start()
// run function contents, including echo
var message = ob_get_clean();
return message;
这将捕获您echo
到缓冲区中的内容,阻止缓冲区被发送,然后将缓冲区读入变量。然后它将为下一次准备好的缓冲区清空。