在php的邮件中发送函数作为消息的方法()

时间:2012-01-18 15:28:46

标签: php sendmail

我正在编写一个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;

显然代码有点混淆,但总体大纲就在那里。

1 个答案:

答案 0 :(得分:4)

echo将输出发送到标准输出,它不会从函数返回它。试试这个。

ob_start()

// run function contents, including echo

var message = ob_get_clean();
return message;

这将捕获您echo到缓冲区中的内容,阻止缓冲区被发送,然后将缓冲区读入变量。然后它将为下一次准备好的缓冲区清空。