str ireplace() с сохранением регистра
Как я могу использовать str_ireplace (или что-то подобное), чтобы заменить некоторый текст для форматирования, а затем вернуть его с теми же заглавными буквами?
Пример:
$original="The quick red fox jumps over the lazy brown dog.";
$find="thE";
print str_ireplace($find,'<b>'.$find.'</b>',$original);
, который выведет: быстрая рыжая лиса перепрыгивает через ленивую коричневую собаку.
Я хочу, чтобы он сохранил исходный регистр и применял только форматирование, в данном примере жирный текст.
Спасибо.
26
2 answers
$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);
39
Author: Artefacto, 2010-08-15 23:54:31
Либо замените точным словом, либо используйте preg_replace:
preg_replace('/(The)/i', "<strong>$1</strong>", $original);
2
Author: mhitza, 2010-08-15 23:58:12