LEOnidUKG

LEOnidUKG
Рейтинг
1776
Регистрация
25.11.2006
Должность
PHP
Интересы
Программирование
siv1987:
Не сказать. Напишите тогда багрепорт

Да просто 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 ----------

'[umka:
;12247698']В каждый скрипт можно добавить нужную строчку другим скриптом )
Вообще, когда я что-то делаю, у меня почти всегда инклудится какой-то header.php, в котором я при необходимости добавляю подобные штуки.

Это всё костыльки и так понятно, что можно и просто устанавливать локали руками везде без подключения. Просто сам вопрос интересный.

---------- Добавлено 17.10.2013 в 16:41 ----------

Хотя я догадываюсь, что разработчики забили по 2-м причинам:

1. Это всё происходит только в винде

2. Всё переводиться на utf-8, а там нет таких проблем

siv1987:
На винде локаль устанавливается через Russian_Russia.
ru_RU. для юникс

Берём ещё раз и читаем топик до конца :)

Проблема в том, чтобы установить по умолчанию, а не прописывать в каждом скрипте.

С высотой вроде всё ок. Может быть вы о том, что текст не ровно?

'[umka:
;12247428']
Как вариант, сделать в php.ini или в конфиге виртуалхоста костыль в виде auto_prepend_file.

Это последнее о чём я думаю. Как оно всё работало в 5.2 не понимаю. И что в 5.4 версии не смогли сделать установку локали. Да это нонсенс.

---------- Добавлено 17.10.2013 в 15:45 ----------

не ну умора в том, что переводим код в utf-8 и всё начинает работать. Никаких локалей не нужно.

Всё короче.

Достаточно просто в php.ini прописать: default_charset = "CP1251"

Остальная проблема вылилась из того, что apache не перезагрузился. Пришлось убивать и заново стартовать.

---------- Добавлено 17.10.2013 в 13:40 ----------

'[umka:
;12246978']
Вы меня конфузите такими вопросами ))
Или скриптом или в системе выставить или в php.ini или в .htaccess

Да я сам тут сконфузился. Думал неужели в 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');

Регулярка не сработает. В чём прикол?

'[umka:
;12246926']Значит, проблема с локалью.
У меня вот такой вариант не работает (обе реги)

$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');

НО... как это по умолчанию то выставить. Скриптов много.

'[umka:
;12246874']То есть, например, \w оно принимает за букву?

\w если только опять же по бокам английские буквы

А вот \W отлично кушает. Конечно только приходиться менять кучу шаблонов для вывода т.к. он всё что по бокам скушает.

---------- Добавлено 17.10.2013 в 13:17 ----------

Но проблема остаётся, с чего это вдруг \b перестало обрабатываться.

---------- Добавлено 17.10.2013 в 13:19 ----------

О прикол. В UTF-8 отлично обрабатывает :D

'[umka:
;12246840']Может, локалю нужно указать?

Да всё уже указал, пачкой:

mb_http_input('windows-1251');

mb_http_output('windows-1251');

mb_internal_encoding("windows-1251");

setlocale(LC_ALL, 'ru_RU.CP1251');

Не имеет смысла. При этом, что именно с \b не хочет работать. В чём фокус.

djinn11:
А не могли бы вы написать код того и другого, или хоть направьте в нужном направлении, только не в поиск, как обычно. ))

Ох нифигасе, может быть вам ещё и пинкод от карточки? :)

В раздел "Платные услуги" идите и вам там напишут за :2cents:

Всего: 31521