Пробовал не помогает. НО в любом случаи, где это надо было бы всё прописывать? Правильно в php файле :)
Ладно. Пусть всё это лежит, тут. Мож кто с поиска заглянет.
Легче указать локаль и забыть или использовать utf-8 и не париться.
echo setlocale(LC_ALL, 0);
Выводит C
т.е. пустоту.---------- Добавлено 17.10.2013 в 18:01 ----------
Да при чём тут флаг? Мы говорим, как локалку установить. Если её прописать, то и \b начитает отлично работать. А про UTF-8 и так всё понятно, что с ним всё работает.---------- Добавлено 17.10.2013 в 18:07 ----------Вообще есть вариант, что в PHP 5.2.17 это всё таки была политика и в ней если не указана локаль бралась системная. А теперь в 5.3 и выше убрали такую вольность.
Да просто intl.default_locale НИКАК не влияет на setlocale. Вообще никак.
Простейший пример:
ini_set('intl.default_locale', 'ru_RU.CP1251');
echo locale_get_default().'<br>';
echo setlocale(LC_ALL, 0).'<br>';
А вот куда писать баг репорт я не знаю. На модуль php_intl?
эээээ.... не проснулись? Ещё раз топик читаем. Эти мануалы ни о чём.---------- Добавлено 17.10.2013 в 16:39 ----------
Это всё костыльки и так понятно, что можно и просто устанавливать локали руками везде без подключения. Просто сам вопрос интересный.---------- Добавлено 17.10.2013 в 16:41 ----------Хотя я догадываюсь, что разработчики забили по 2-м причинам:
1. Это всё происходит только в винде
2. Всё переводиться на utf-8, а там нет таких проблем
Берём ещё раз и читаем топик до конца :)
Проблема в том, чтобы установить по умолчанию, а не прописывать в каждом скрипте.
С высотой вроде всё ок. Может быть вы о том, что текст не ровно?
Это последнее о чём я думаю. Как оно всё работало в 5.2 не понимаю. И что в 5.4 версии не смогли сделать установку локали. Да это нонсенс.---------- Добавлено 17.10.2013 в 15:45 ----------не ну умора в том, что переводим код в utf-8 и всё начинает работать. Никаких локалей не нужно.
Всё короче.
Достаточно просто в php.ini прописать: default_charset = "CP1251"
Остальная проблема вылилась из того, что apache не перезагрузился. Пришлось убивать и заново стартовать.---------- Добавлено 17.10.2013 в 13:40 ----------
Да я сам тут сконфузился. Думал неужели в php5.4 по другому что-то замутили 😂
А это сволочуга апатч 😂---------- Добавлено 17.10.2013 в 14:47 ----------Так, рано радовался. Всё не так просто.
default_charset = "CP1251" чуть не то. Если в скрипте не установить локаль, то она не срабатывает.
Ок, вопрос на засыпку. Как в php.ini прописать локаль?
Модуль intl не срабатывает, библиотека подключена.
Ещё варианты?---------- Добавлено 17.10.2013 в 14:49 ----------Проверяю phpinfo()
intl.default_locale Russian_Russia.1251
Всё ок, НО пока в скрипте я не пропишу: setlocale(LC_ALL, 'Russian_Russia.1251');
Регулярка не сработает. В чём прикол?
$str="это как так?"; echo preg_replace("/\bкак\b/", "никак", $str); echo preg_replace("/ка\w/", "никак", $str);
setlocale(LC_CTYPE,"ru_RU.CP1251"); $str="это как так?"; echo preg_replace("/\bкак\b/", "никак", $str); echo preg_replace("/ка\w/", "никак", $str);
На винде с 5.4?---------- Добавлено 17.10.2013 в 13:32 ----------Сработала вот такая установка:
setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251');
НО... как это по умолчанию то выставить. Скриптов много.
\w если только опять же по бокам английские буквы
А вот \W отлично кушает. Конечно только приходиться менять кучу шаблонов для вывода т.к. он всё что по бокам скушает.---------- Добавлено 17.10.2013 в 13:17 ----------Но проблема остаётся, с чего это вдруг \b перестало обрабатываться.---------- Добавлено 17.10.2013 в 13:19 ----------О прикол. В UTF-8 отлично обрабатывает :D