LEOnidUKG

LEOnidUKG
Рейтинг
1784
Регистрация
25.11.2006
Должность
PHP
Интересы
Программирование
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:

Ой да ладно? Прямо таки обход? :D

Доброе утро. Выходы есть такие:

1. Использовать прокси

2. Использовать распознавание каптча

3. 1+2

А потом все эти заказчики будут в этой теме отзыв писать: /ru/forum/775470

:D

Всего: 31599