在php中以消息形式发送函数的方法';s mail()

在php中以消息形式发送函数的方法';s mail(),php,sendmail,Php,Sendmail,我正在编写一个PHP脚本,它将通过cron每晚发送一封电子邮件。在这个脚本中,我有多个输出特定文本的函数。然后我尝试在电子邮件中发送这些功能的内容。出于某种原因,电子邮件的处理很好,但内容的主体显示为空。如果有更好的方法,我愿意接受 function function1() { global $new; echo "<p>"; while ($row = mysql_fetch_array($query)) $content = $row["COUNT(col

我正在编写一个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;
函数function1(){
全球新美元;
回声“”;
而($row=mysql\u fetch\u array($query))$content=$row[“COUNT(column1)”;
如果($content!=0)回显“output1”;
else回显“output2”;
回声“

”; } $emailMessage=function1().function2().function3(); 如果($_GET['version']=“email”){ 邮件($emailTo、$emailSubject、斜杠($emailMessage)); } 否则回显$emailMessage;

显然,代码有点模糊,但总的轮廓在那里。

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

ob_start()

// run function contents, including echo

var message = ob_get_clean();
return message;

这将把您的
echo
捕获到缓冲区中,防止缓冲区被发送,然后将缓冲区读入变量。然后,它将清空缓冲区以备下次使用。

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

ob_start()

// run function contents, including echo

var message = ob_get_clean();
return message;

这将把您的
echo
捕获到缓冲区中,防止缓冲区被发送,然后将缓冲区读入变量。然后它将清空缓冲区以备下次使用。

应该在整个php页面的开头调用ob_start(),还是在每个单独的函数中调用ob_start(),我想是整个页面。试试看,哦,对不起。我已经几百年没有编写PHP了。应该在整个PHP页面的开头调用ob_start(),还是在每个单独的函数中调用ob_start()?我想是整个页面。试试看,哦,对不起。我已经几百年没有编写PHP了。