Подтвердить что ты не робот

Str_ireplace() с сохранением case

Как я могу использовать str_ireplace (или что-то подобное) для замены некоторого текста для форматирования, а затем вернуть его с теми же шапками?

Пример:

$original="The quick red fox jumps over the lazy brown dog.";
$find="thE";

print str_ireplace($find,'<b>'.$find.'</b>',$original);

Это будет выводить: быстрый рыжий лис прыгает над ленивой коричневой собакой.

Я хочу, чтобы он сохранил исходный код и применил только форматирование в этом примере жирного текста.

Спасибо.

4b9b3361

Ответ 1

$original = "The quick red fox jumps over the lazy brown dog.";
$new = preg_replace("/the/i", "<b>\$0</b>", $original);

дает " Быстрая красная лиса прыгает через ленивую коричневую собаку". Если вы хотите совместить определенные слова, вы можете добавить границы слов: preg_replace('/\bthe\b/i', ....

Если вы хотите параметризовать замену, вы можете использовать preg_quote:

 preg_replace('/\b' . preg_quote($word, "/") . '\b/i', "<b>\$0</b>", $original);

Ответ 2

Либо замените точное слово, либо используйте preg_replace:

preg_replace('/(The)/i', "<strong>$1</strong>", $original);