2012-01-18 7 views
0

私は毎晩cron経由でメールを送信するPHPスクリプトを作成しています。このスクリプトでは、特定のテキストを出力する複数の関数があります。私はその後、電子メールでそれらの機能の内容を送信しようとしています。何らかの理由で電子メールが正常に処理されていますが、コンテンツの本文が空になっています。これを行うより良い方法があれば、是非私はそれを公開しています。phpのメールで関数としてメッセージを送信する方法

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; 

明らかにコードは難読化されていますが、一般的な概要があります。

答えて

4

echoは、標準出力に出力を送信しますが、関数から出力しません。これを試して。

ob_start() 

// run function contents, including echo 

var message = ob_get_clean(); 
return message; 

これは、あなたがechoバッファに、送信されてからバッファを防ぐため、その後、変数にバッファを読んで何をキャプチャします。その後、次回のバッファ準備ができなくなります。

+0

ob_start()は、PHPページ全体または個々の関数の冒頭で呼び出す必要がありますか? – bswinnerton

+0

全体のページ、と思います。それを試してみてください。 – Joe

+0

多くのおかげで、それは働いた。しかし、varを必要としませんでした。 – bswinnerton

関連する問題