Да просто 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
Да всё уже указал, пачкой:
mb_http_input('windows-1251');
mb_http_output('windows-1251');
mb_internal_encoding("windows-1251");
setlocale(LC_ALL, 'ru_RU.CP1251');
Не имеет смысла. При этом, что именно с \b не хочет работать. В чём фокус.
Ох нифигасе, может быть вам ещё и пинкод от карточки? :)
В раздел "Платные услуги" идите и вам там напишут за :2cents: