0

私はフックを作成しようとしているので、テキスト内に次のものが見つかった場合:

level,2

$skill_level * $nコンマの後の数字が ,に置き換えられます。$n

ここに私が持っているものがあります:

$skill_level = 2;

$row['s_effect'] = "Long string of text that contains level,2."

preg_replace("/level,$n/",$skill_level * $n,$row['s_effect'])

私は次の結果を得ています:

Long string of text that contains 02.

次の結果が必要です。

Long string of text that contains 4.

何らかの理由で計算"$skill_level * $n" (2 * 2)が機能していないようです。

4

1 に答える 1

3

使用する必要がありますpreg_replace_callback

$skill_level = 2;
$text = "Long string of text that contains level,2.";

$ret = preg_replace_callback("/level,(\d+)/", function ($matches) use ($skill_level) {
  return $matches[1] * $skill_level;
}, $text);
于 2012-09-25T04:02:33.643 に答える