5

したがって、次のようなPHPコードがあります。

$message = 'Here is the result: %s';

%s を例として使用しました。それは基本的にそこに行くもののプレースホルダーです。次に、文字列を関数に渡し、その関数で %s を値に置き換えます。

これを達成するために何をする必要がありますか?いくつかの正規表現を実行し、preg_replace() などを使用する必要がありますか? またはそれを行う簡単な方法はありますか?

4

5 に答える 5

21

フォーマットされた文字列を返し、変数をプレースホルダーの場所に配置するsprintf関数を実際に使用できます。
また、文字列をどのようにフォーマットして表示するかについても大きな力を発揮します。

$output = sprintf("Here is the result: %s for this date %s", $result, $date);
于 2009-05-06T08:48:12.797 に答える
3

を使用する場合%s、printf が文字列に使用するのと同じプレースホルダーだと思います。したがって、次のことができます。

$text = sprintf($message, "replacement text");

少なくともうまくいくはずだと思います...

于 2009-05-06T08:48:52.747 に答える
3
$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 を作成します

于 2009-05-07T01:42:06.463 に答える
2

を使用できます。これは、Cおよび関数とsprintf非常によく似た方法で機能します。printfsprintf

于 2009-05-06T08:48:04.247 に答える
-3

動的変数を試してください:

$placeholder = 's';
str_replace("%".$placeholder,$$placeholder,$message);

%s は変数 $s に置き換えられます

于 2009-05-06T08:44:33.787 に答える