Проблемы с preg_replace и русскими символами

igo82

Новичок
Проблемы с preg_replace и русскими символами

Друзья у меня проблема с функцией 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);
}

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

igo82

Новичок
Я извиняюсь вы имеете ввиду Мануал чтоли? Я смотре phpinfo ав также искал функции которые бы выводили доступные локали..но так и не нашел ничего. Не подскажите всетаки как посмотреть?
 

TutanXamoN

Новичок
igo82
setlocale() - функция.
Функции возвращают результат своей работы.
 

igo82

Новичок
PHP:
setlocale(LC_CTYPE, array('ru_RU.CP1251', 'Russian_Russia.1251'));
print setlocale(LC_CTYPE,0);
возвращает: "C". Это значит найдена?
 

TutanXamoN

Новичок
igo82
PHP:
$loc_ru = setlocale(LC_CTYPE, array('ru_RU.CP1251', 'Russian_Russia.1251'));
echo "Preferred locale for russian on this system is '$loc_ru'";
 

igo82

Новичок
Preferred locale for russian on this system is '' я так понимаю что не нашла и единственное решение необходимо корректно установить локаль.
 

igo82

Новичок
Автор оригинала: kvf77
igo82
Попробуй:
setlocale(LC_ALL, 'ru_RU.cp1251');
PHP:
$loc_ru = setlocale(LC_ALL, 'ru_RU.cp1251'); 
echo "Preferred locale for russian on this system is '$loc_ru'";
К сожалению тоже самое - Preferred locale for russian on this system is ''
 

kvf77

Red Devil
igo82
ну так пинай админа - спроси какие локали установлены на сервере или заставь его установить нужные тебе локали
 
Сверху