Строка PHP заменит целое слово

Я хотел бы заменить только полные слова, используя php

Пример: если у меня есть

$text = "Hello hellol hello, Helloz"; 

и я использую

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

Новый текст должен выглядеть так:

Привет, привет, Helloz

PHP возвращает

Привет привет hello1, NEWz

Благодарю.

Вы хотите использовать регулярные выражения. \b соответствует границе слова.

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

Если $text содержит $text UTF-8, вам нужно будет добавить модификатор Unicode «u», чтобы нелатинские символы не были неверно истолкованы как границы слов:

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

множественное слово в строке, замененное этим

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

Список замены массива : если ваши заменяющие строки заменяют друг друга, вам нужно 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 ); 

Очевидно, что / для эффективности /\w+/ может быть заменено на ключевой список /\b(one|two|three)\b/i .