Показать сообщение отдельно
Старый 19.03.2008, 18:50
igor82 вне форума Посмотреть профиль Отправить личное сообщение для igor82 Найти все сообщения от igor82
  № 1  
Ответить с цитированием
igor82

Регистрация: Apr 2002
Адрес: Россия, Воронеж
Сообщений: 121
Отправить сообщение для igor82 с помощью ICQ Отправить сообщение для igor82 с помощью Yahoo
По умолчанию Проблемы с preg_replace

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

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


Последний раз редактировалось igor82; 19.03.2008 в 18:54.