1

PHPを使用してフォームレターを作成しようとしています。事前に入力されたテキストがあるテキスト領域があるビューがあります。テキストは手紙のようなものです:DearSo-and-soなど。

データベースから特定の動的データを入力する必要がある場所がいくつかありますが、それ以外の場合は、必要に応じてユーザーに電子メールの他の部分の文言を変更させる必要があります。新しい値を挿入する各場所をマークするために、ランダムな文字シーケンスを配置することを考えています。

そこで、フォームをPHPページに送信し、テキストを文字列変数に引き出します。メールで送信する準備ができたら、それらのプレースホルダーが更新されていることを確認する必要があります。文字列変数の内容を変数の値に置き換えるにはどうすればよいですか?

編集-例。これは、フォームのアクションを処理しているPHPファイルの文字列変数内に現在あるものです。

やあ %@

元気にしていることを願います。%@日以内に何かをする必要があることを思い出させたいと思います。

チームとして、私たちは現在%@パーセントにいます。

4

3 に答える 3

2

私は以下を数回使用しました。これがあなたが探しているものを解決することを願っています。

<?php

$content = "Hi #user, 
Thanks for registering. Your username is #username.
"

$trans = array("#user" => "ABC", "#username"=> "XYZ");

echo strtr($content, $trans);

?>

使いやすいと思います。コンテンツ変数を文字列に変更し、プレースホルダー(#で始まる)をプレースホルダーに変更するだけです。必要に応じて、データベースまたは$_POSTからこれらのプレースホルダーの$trans配列に値を設定します。

于 2012-05-26T05:57:32.433 に答える
2

私が使っているのは次のようなものです。

$email_text = "Hello ###user###,    
                  You have a new Event on ###date### at ###time### for ###hours### hour.    
                  Please let me know if you are attending. 

                  Have Fun.
                  ###site###";

$email_text =   str_replace('###user###',$username,$email_text);
$email_text =   str_replace('###date###',date('M dS, Y', strtotime($date)),$email_text);
$email_text =   str_replace('###time###',$time,$email_text);
$email_text =   str_replace('###hours###',$hours,$email_text);
$email_text =   str_replace('###site###',$site,$email_text);

これにより、これをどのように解決できるかがかなり明確になることを願っています。

于 2012-05-26T05:58:33.010 に答える
2

文字のテキストが次のようになっていると仮定します。

親愛なる%name%!私は%city%の出身です。%destination%に行きましょう。

コードは次のようになります。

$letter_text = $_POST["letter_text"];
foreach(array("name", "city", "destination") as $var) {
  $letter_text = str_replace("%".$var."%", $_POST[$var], $letter_text);
}
于 2012-05-26T05:51:44.573 に答える