2010-08-15 4 views
26

Как использовать 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); 

Это будет: ПРЕИМУЩЕСТВА ДЛЯ быстро красная лиса прыгает через ленивую собаку коричневого.

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

спасибо.

ответ

39
$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); 
+0

Отлично, спасибо. – Francisc

+0

* Быстрая коричневая лиса прыгает по ленивой собаке – Popnoodles

2

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

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

Спасибо, mhitza. – Francisc

Смежные вопросы