ereg_replace или как выделить слово в тексте...

[slon]

Guest
ereg_replace или как выделить слово в тексте...

Задача:
есть некая переменная содержащая некоторое текстовое значение. Вторая переменная содержит одно слово. Необходимо проверить всё это текстовое значение и сравнивая с второй переменной (словом) выделить в тексте все совпадения.

Код:
PHP:
<?
$str = "php jahd woehka php kasfh kjkwq kashf kjewf php kashfsadf php\n klsahg jkewqghr php sadghjk\nkjlsaga qerhb php";
$str = nl2br($str);

echo ereg_replace("php","<b>php</b>",$str);
?>
Проблема:
как мне быть если в тексте будут встречаться такиеже слова но в другом регистре, например: PhP, Php, PHP и т.д... То есть как мне сделать замену без учета регистра???
 

[slon]

Guest
Большое спасибо за линк - очень помог и заставил хорошенько порыться в сети на тему preg_replace. Но в том примере который как раз мне и был нужен есть ошибка!

Цитирую:
В тексте есть некоторые слова, допустим "СЛОВО" и "ЛЯЛЯЛЯ" (и т.д.), которые нужно одинаковым образом заменить на тоже самое, но с добавками. Возможно, слова отсутствуют или встречаются много раз в любом регистре. Т.е. если было "слово" или "СлОвО" (или еще как), нужно заменить это на "<b>слово</b>" или "<b>СлОвО</b>" (смотря, как было). Другими словами нужно найти перечень слов в любом регистре и вставить по краям найленных слов фиксированные строки (на "<b>" и "</b>").

PHP:
$string=preg_replace("/(слово1|слово2|ляляля|слово999)/","<b>\\1</b>",$string);
на самом же деле это строчка должна иметь такой вид:
PHP:
$string=preg_replace("/(слово1|слово2|ляляля|слово999)/i","<b>\\1</b>",$string);
Символ 'i' как раз и говорит о том что регистр не должен учитываться...

Спасибо!
 
Сверху