したがって、次のようなPHPコードがあります。
$message = 'Here is the result: %s';
%s を例として使用しました。それは基本的にそこに行くもののプレースホルダーです。次に、文字列を関数に渡し、その関数で %s を値に置き換えます。
これを達成するために何をする必要がありますか?いくつかの正規表現を実行し、preg_replace() などを使用する必要がありますか? またはそれを行う簡単な方法はありますか?
したがって、次のようなPHPコードがあります。
$message = 'Here is the result: %s';
%s を例として使用しました。それは基本的にそこに行くもののプレースホルダーです。次に、文字列を関数に渡し、その関数で %s を値に置き換えます。
これを達成するために何をする必要がありますか?いくつかの正規表現を実行し、preg_replace() などを使用する必要がありますか? またはそれを行う簡単な方法はありますか?
フォーマットされた文字列を返し、変数をプレースホルダーの場所に配置するsprintf関数を実際に使用できます。
また、文字列をどのようにフォーマットして表示するかについても大きな力を発揮します。
$output = sprintf("Here is the result: %s for this date %s", $result, $date);
を使用する場合%s
、printf が文字列に使用するのと同じプレースホルダーだと思います。したがって、次のことができます。
$text = sprintf($message, "replacement text");
少なくともうまくいくはずだと思います...
$find = array(
'#name#',
'#date#'
);
$search = array(
'someone\'s name',
date("m-d-Y")
);
$text_result = str_replace($find, $search, $text);
私は通常、コードにこれを使用して、いくつかの text/html ファイルから $text を取得し、出力として $text_result を作成します
を使用できます。これは、Cおよび関数とsprintf
非常によく似た方法で機能します。printf
sprintf
動的変数を試してください:
$placeholder = 's';
str_replace("%".$placeholder,$$placeholder,$message);
%s は変数 $s に置き換えられます