実行すると出力が得られる関数を含むphpスクリプトがあります。ob_start および ob_get_clean 関数を使用して、その出力を出力バッファーとして使用し、HTML を含む出力をレポートとして電子メールで送信しています。問題は、電子メールが出力の最初の数行ではなく、何度も試してみましたが、毎回最初の数行が欠落していることです。
これを解決するには?
<?php
function abc{
echo 'Server Time: '.date('l jS \of F Y h:i:s A').'<br>';
echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit. <br>
Vestibulum semper purus ut felis interdum at tempus turpis imperdiet. <br>
Donec varius accumsan magna nec blandit. <br>
Donec a pellentesque ligula. Curabitur accumsan mauris non velit vehicula sodales. <br>
Phasellus vestibulum vestibulum nunc ut lobortis. Ut eu rutrum orci. Phasellus tempor eleifend congue. <br>
In mollis porta arcu. Integer congue fringilla lorem.";
}
function mailasreport($message) {
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
mail('example@hotmail.com', $subject, $message, $headers);
}
ob_start();
abc();
$report = ob_get_clean();
mailasreport($report);
?>
電子メール出力:
Donec varius accumsan magna nec blandit.
Donec a pellentesque ligula. Curabitur accumsan mauris non velit vehicula sodales.
Phasellus vestibulum vestibulum nunc ut lobortis. Ut eu rutrum orci. Phasellus tempor eleifend congue.
In mollis porta arcu. Integer congue fringilla lorem.
元のコードは非常に長く、これはその小さなクローンです!