-1

システムがテキストに入力するメソッドを使用しているのを見てきました%{variable_name}%(データベースに保存するか、大量の電子メールを送信するとしましょう)。ページが読み込まれると、それを見つけ%{variable_name}て別のコード/文字列に置き換えます。

たとえば、大量の電子メールをメーリング リストに送信する場合: Hello %{name}%、これは電子メールです....送信をクリックすると、電子メールが送信されますが、それは次のようになります...「Hello John Doe, this is an email」...

私はグーグルを検索しましたが、それが何と呼ばれているのか本当にわからないため、見つけることができません。これをコードで見たばかりで、現在非常に役立つコードを書いています。

誰かがそれが何と呼ばれるか、何を検索するか、またはそれを実装する方法の例を教えてくれたら、それは素晴らしいことです.

(タグを間違えた場合は、正しいタグに変更してください)

4

4 に答える 4

2

私はこのアプローチをうまく使用しています:

 $message = str_replace('[NAME]', $name, $message);

たとえば[NAME]、大量の電子メールが次の内容に置き換えられるように$name

あなたが持っている構文を好む場合は、次%{NAME}%の内容に置き換えられます$name

$message = str_replace('%{NAME}%', $name, $message);

特定のリンクとメールアドレスを追加したい場合など、何度でもやり直すことができます。

$message = str_replace('%{NAME}%', $name, $message);
$message = str_replace('%{LINK}%', $link, $message);
$message = str_replace('%{EMAIL}%', $email, $message);

参考: http: //php.net/manual/en/function.str-replace.php

于 2013-04-18T20:21:36.267 に答える
1

私はあなたのためにクラスを書きました:

class templatevars{
    private static $vars=array();
    public static function set($var,$val){
        self::$vars["%{".$var."}%"]=$val;
    }
    public static function replace($text){
        return str_replace(array_keys(self::$vars),array_values(self::$vars),$text);
    }
}

使用法:

templatevars::set("varname","text to insert");
templatevars::set("varname2","other text to insert");
echo templatevars::replace("First: %{varname}% Second: %{varname2}%");

複数の置換子が必要な場合は、クラスからすべての静的分類子を削除し、次のようにします。

$replacer_1=new templatevars();
$replacer_1->set("var","text");
$result=$replacer_1->replace($text_source);
于 2013-04-18T20:35:20.890 に答える