PDA

Просмотр полной версии : Проблемы с preg_replace


igor82
19.03.2008, 18:50
Друзья у меня проблема с функцией preg_replace. она корректно отрабатывает на моем локальном сервере (win+apache+php 5.2.0), но при загрузке скрипта на сервер хостера (unix+apache+5.2.0) отказывается работать с русскими символами, в то время как с английскими работает корректно. Локаль выставляю:

setlocale(LC_CTYPE, array('ru_RU.CP1251', 'Russian_Russia.1251'));

Задача у меня следующая. Есть две строки:
1) просто список слов через пробел
2) Текст статьи.

Вот мне нужно все вхождения каждого слова из первой строки выделить жирным во второй.

Для этого я юзаю вот эту функцию (как говорилось выше она некорректно работает на сервере хостера, не видит русских букв)
Может у кого есть готовое более надежное решение?:

function Highlight($whereText, $whatText)
{


$highlightWords = $highlightWordsRepl = array();

$highlightWordsT = $whatText;


foreach ( $highlightWordsT as $k => $v )
if ( !$v )
{
$highlightWords[] = "#\b($k)\b#isU";

}
else
foreach ( $v as $v1 )
{
$highlightWords[] = "#\b($v1)\b#isU";
}


return preg_replace(array_reverse($highlightWords), '<b>$1</b>', $whereText);
}


Заранее всем спасибо!