igo82
Новичок
Проблемы с preg_replace и русскими символами
Друзья у меня проблема с функцией preg_replace. она корректно отрабатывает на моем локальном сервере (win+apache+php 5.2.0), но при загрузке скрипта на сервер хостера (unix+apache+5.2.0) отказывается работать с русскими символами, в то время как с английскими работает корректно. Локаль выставляю:
Задача у меня следующая. Есть две строки:
1) просто список слов через пробел
2) Текст статьи.
Вот мне нужно все вхождения каждого слова из первой строки выделить жирным во второй.
Для этого я юзаю вот эту функцию (как говорилось выше она некорректно работает на сервере хостера, не видит русских букв)
Может у кого есть готовое более надежное решение?:
Заранее всем спасибо!
Друзья у меня проблема с функцией preg_replace. она корректно отрабатывает на моем локальном сервере (win+apache+php 5.2.0), но при загрузке скрипта на сервер хостера (unix+apache+5.2.0) отказывается работать с русскими символами, в то время как с английскими работает корректно. Локаль выставляю:
PHP:
setlocale(LC_CTYPE, array('ru_RU.CP1251', 'Russian_Russia.1251'));
1) просто список слов через пробел
2) Текст статьи.
Вот мне нужно все вхождения каждого слова из первой строки выделить жирным во второй.
Для этого я юзаю вот эту функцию (как говорилось выше она некорректно работает на сервере хостера, не видит русских букв)
Может у кого есть готовое более надежное решение?:
PHP:
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);
}
Заранее всем спасибо!