PHP String ersetzt das ganze Wort

Ich möchte nur komplette Wörter mit PHP ersetzen

Beispiel: Wenn ich habe

$text = "Hello hellol hello, Helloz"; 

und ich benutze

 $newtext = str_replace("Hello",'NEW',$text); 

Der neue Text sollte so aussehen

NEU Hallo Hallo, Hallo

PHP kehrt zurück

NEU Hallo Hallo, NEWz

Vielen Dank.

   

Sie möchten reguläre Ausdrücke verwenden. Das \b stimmt mit einer Wortgrenze überein.

 $text = preg_replace('/\bHello\b/', 'NEW', $text); 

Wenn $text UTF-8-Text enthält, müssen Sie den Unicode-Modifizierer “u” hinzufügen, damit nicht lateinische Zeichen nicht als Wortgrenzen interpretiert werden:

 $text = preg_replace('/\bHello\b/u', 'NEW', $text); 

mehrere Wörter in der Zeichenfolge wurden durch diese ersetzt

  $String = 'Team Members are committed to delivering quality service for all buyers and sellers.'; echo $String; echo "
"; $String = preg_replace(array('/\bTeam\b/','/\bfor\b/','/\ball\b/'),array('Our','to','both'),$String); echo $String;

Array- Ersetzungsliste: Falls sich Ihre Ersetzungszeichenfolgen gegenseitig ersetzen, benötigen Sie preg_replace_callback .

 $pairs = ["one"=>"two", "two"=>"three", "three"=>"one"]; $r = preg_replace_callback( "/\w+/", # only match whole words function($m) use ($pairs) { if (isset($pairs[$m[0]])) { # optional: strtolower return $pairs[$m[0]]; } else { return $m[0]; # keep unreplaced } }, $source ); 

Offensichtlich / für Effizienz /\w+/ könnte durch eine Schlüsselliste ersetzt werden /\b(one|two|three)\b/i .