подскажите, что надо подкрутить на хостинге, чтобы \b работал с русскими словами? мне вообще надо определить границу слова (пробел, пунктуационные знаки), английские слова ловит, русские нет: preg_replace("/\b(".preg_quote('Вася').")\b/is", $zamena, $text); preg_replace("/\b(".preg_quote('Vasia').")\b/is", $zamena, $text); на локалхосте оба находят васю и заменяют, в нете работает только англицкий. хостер юниксовый. PS лень было вырезать preg_quote
Код (Text): preg_replace("/(\W)(".preg_quote('Вася').")(?=(\W|$))/is", "\\1$zamena", $text); а вот так работает, но это ведь не выход... add: блин, а еще регистр русских букв не распознается... всмысле регистрозависимый поиск получается
блин, все ее советуют, а на чем она потом отразится? и что пердавать во втором параметре? на хостинге возвращается локаль "С", при любом втором параметре возвращает false. ПХП, кстати, версии 5.1.6 вообще можно как то получить список доступных локалей? Блин, случайно наткнулся.. Код (Text): $ress=setlocale(LC_ALL, array('ru_RU.CP1251', 'rus_RUS.1251')); любое изменение этой строчки возврщает фалсе... капец... ADD2 сделал LC_CTYPE, какими последствиями это может грозить? ну регекспы начали нормально работать с русскими словечками, а подводые камни есть?
Код (Text): gorbunov@ubuntu:~$ locale -a C en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IN en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZW.utf8 POSIX ru_RU.utf8 ru_UA.utf8
Типы локалей: Код (Text): gorbunov@ubuntu:~$ locale LANG=ru_RU.UTF-8 LANGUAGE=ru_RU:ru:en_GB:en LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=