email-template.phpファイルを送信するとき、以下のコードは正しく動作します。私は今、SQLのクエリの結果をテーブルの電子メールテンプレートに含めたいと思っています。基本的に引用符のリストです。私は感じているstr_replace
は行く方法ですが、完全な初心者である、私はこれを行う方法がわかりません。電子メールテンプレートにSQLクエリ結果を追加します
<?php
include('connect.php');
include('functions.php');
$sql = "SELECT Quote FROM daily_quote Order By rand() Limit 0,10";
$result = $conn->query($sql);
$to = '[email protected]';
$subject = "Test";
$htmlContent = file_get_contents("email-template.php");
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// Additional headers
$headers .= 'From: [email protected]' . "\r\n";
// Send email
if(mail($to,$subject,$htmlContent,$headers)):
$successMsg = 'Email has sent successfully.';
else:
$errorMsg = 'Email sending fail.';
endif;
include('footer.php');
を編集あなたが入る避ける必要がありますスローアウェイSQL文字列を宣言し、その代わりに 'query(...)'呼び出しの中に直接クエリを置く習慣です。これにより誤って間違ったクエリを実行したときの間違いが回避されます。同様に 'if(...):'スタイルは[代替構文](http://php.net/manual/en/control-structures.alternative-syntax.php)であり、実際には奨励されていません。 – tadman
その単純なタスクのために 'str_replace()'に間違いはありません。テンプレート内のプレースホルダを定義し、HTMLテーブルを含む生成された文字列で置き換えます。より複雑なテンプレートの場合(またはデータ処理とプレゼンテーションを分けたい場合)、スマート、小枝などのテンプレートエンジンを使用することを検討することができます。 –