нечувствительная к регистру подсветка в php - PullRequest
3 голосов
/ 01 мая 2010

Я использую эту функцию, чтобы выделить результаты запроса MySQL:

 function highlightWords($string, $word)
 {

        $string = str_replace($word, "<span class='highlight'>".$word."</span>", $string);
    /*** return the highlighted string ***/
    return $string;

 }

 ....

  $cQuote =  highlightWords(htmlspecialchars($row['cQuotes']), $search_result);

проблема в том, что если я введу «хорошо», результаты моего поиска будут отображаться только в нижнем регистре «g», а не «хорошо». как мне это исправить?

1 Ответ

18 голосов
/ 01 мая 2010

Используйте str_ireplace() вместо.

РЕДАКТИРОВАТЬ: Вот версия регулярного выражения, которая сохраняет оригинальный регистр:

$string = preg_replace("/".preg_quote($word, "/")."/i", "<span class='highlight'>$0</span>", $string);
...