1

私のテキスト:

ボブにはメッセージ123があり、アリスにはメッセージがあります

私が欲しい:

bob には newmessage があり、alice には newmessage があります

私の現在のコードは次のとおりです。

$fullText= str_replace("message123", "newmessage", $fulltext);
$fullText= str_replace("message", "newmessage", $fulltext);

しかし、次のようになります。

bob には newnewmessage があり、alice には newmessage があります

  • str_replace(); のため、'new' が繰り返されます。テキスト全体を検索し、もう一度置換を見つけます。
  • すでに置換されているテキストを置換しないことは可能ですか。
4

3 に答える 3

0

最も簡単な解決策として、スペースを追加するだけです:

$fullText= str_replace(" message1 ", " newmessage ", $fulltext);
$fullText= str_replace(" message ", " newmessage ", $fulltext);

または複数の針を使用する:

$fullText = str_replace(array(' message1 ', ' message '), array(' newmessage ', ' newmessage '), $fullText);
于 2013-09-15T19:36:56.270 に答える
0

strtr() 関数を使用してください。すでに置き換えられたものを再度渡すことはありません。

$fullText = 'bob have message1 and alice has message without 1.';
$fullText = strtr( $fullText, array(
    "message1" => "newmessage",
    "message" => "newmessage" ) );
于 2013-09-15T20:03:13.120 に答える