自動電子メールを作成する際には、電子メールの特定の部分を保存されたデータに置き換える必要があります。
例えば。親愛なる%first_name% %surname%
、ご参加いただきありがとうござい%place_name%
ます。
これは、それぞれの文字列置換を使用して実行できますが、より高速な方法が必要です。
変数名がシステムに必要なものと同じであると仮定します。%first_name%
などに置き換える必要があり$user['first_name']
ます...。
自動電子メールを作成する際には、電子メールの特定の部分を保存されたデータに置き換える必要があります。
例えば。親愛なる%first_name% %surname%
、ご参加いただきありがとうござい%place_name%
ます。
これは、それぞれの文字列置換を使用して実行できますが、より高速な方法が必要です。
変数名がシステムに必要なものと同じであると仮定します。%first_name%
などに置き換える必要があり$user['first_name']
ます...。
1つのオプション:
$vars = array(
'firstname' = 'Bob',
'surname' = 'Dole',
'place' = 'Las Vegas',
// ...
);
extract($vars);
include('my_template.phtml');
そしてmy_template.phtmlで:
<?php
echo <<<EOF
Dear $firstname $surname,<br>
Thank you for attending the Viagra and Plantains Expo in $place.
EOF;
?>
の使用中に名前の衝突が心配な場合はextract()
、いつでもこのEXTR_PREFIX_ALL
オプションまたは他の抽出方法の1つを使用できます。
または、さらに良いことに、車輪の再発明をしないでください。Smartyまたはmustache.phpを使用するだけです。
この質問も参照してください:変数を持つPHPテンプレートクラス?
の間のキーを配列値preg_replace_callback
に置き換えるために利用できます。%
$fields = array('first_name' => 'Tim', 'place_name' => 'Canada');
$string = preg_replace_callback('/%(.+?)%/', function($arr) use($fields)
{
$key = $arr[1];
return array_key_exists($key, $fields) ? $fields[$key] : $arr[0];
}, $string);