|
|
|
| Здравствуйте!
Подскажите пожалуйста, как можно узнать установленные в системе локали...
Просто хочу установить русскую локаль с кодировкой CP1251, но админ хостинга незнает ее названия.
сейчас установлена локаль С (что это такое?)...
названия локалей типа 'ru_RU.CP1251', 'rus_RUS.1251', 'ru_RU.1251', 'rus_RUS.CP1251' не подходят.
в качестве панели управления установлена cpanel 11 версии...
И вообще как эти локали устанавливаются на сервер (может, легче попросить админа хостинга установить эту локаль? но тогда откуда ее взять, и не факт, что он знает, как это делается...) | |
|
|
|
|
|
|
|
для: victoor
(07.09.2007 в 15:35)
| | А операционная система какая используется? | |
|
|
|
|
|
|
|
для: cheops
(08.09.2007 в 11:49)
| | Linux
В принципе, проблема решена...
Как оказалось, функция, которая определяла набор разрешенных символов у меня дома и на предыдущем хостинге считала маленькие и большие буквы одинаковыми (т.е. в разрещенных символах были записаны только маленькие буквы, а нормально проходили и заглавные), а тут маленькие и большие - разное. Но после добавления в список разрешенных символов еще и заглавных символов все пошло нормально. А на локаль грешил потому, что на на предыдущем хостинге именно установка нужной локали решило проблему.
Но как решить проблему с установкой локали, всеравно будет интересно послушать - может еще где-либо пригодится... | |
|
|
|
|
|
|
|
для: victoor
(08.09.2007 в 12:43)
| | И на что же эта функция опиралась, если не на локаль?
По какой причине она оказалась непереносимой? | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2007 в 12:53)
| | незнаю, на что она опиралась....
Вот константа, в которой разрешенные символы (как оно раньше выглядело) define('REG_FOR_NICK', '/^[a-zа-яё;0-9-_ ~@\!\^\(\)\.\d]+$/i'); #Рег.выражение для ника
а вот функция, которая должна была отсеивать:
function provercka($string, $reg_str, $echo_fl='', $echo_tr='') #Проверка введенных данных на корректность.
{
if(preg_match($reg_str, $string) or $string=='')
{
if ($echo_tr) {echo('<font color=GREEN>'.$echo_tr.'</font><br>');};
return true;
}
else
{
if ($echo_fl) {echo('<font color=RED>'.$echo_fl.'</font>'.$string.'<br>');};
return false;
}
};
|
т.е. дома preg_match() считал маленькие и большие буквы одинаковыми, а на хостинге стал считать их разными.
Наверно, дело всеже в локали, точнее ее настройках...
но проблема решилась без смены локали простым добавлением в список разрешенных символов и заглавных букв define('REG_FOR_NICK', '/^[a-zа-яёA-ZА-ЯЁ;0-9-_ ~@\!\^\(\)\.\d]+$/i'); #Рег.выражение для ника ... | |
|
|
|
|
|
|
|
для: victoor
(09.09.2007 в 14:05)
| | Кривовато написали, ну ничего главное что работает, да ? | |
|
|
|
|
|
|
|
для: mihdan
(10.09.2007 в 10:44)
| | )>Кривовато написали, ну ничего главное что работает, да ?
ага, работает...
P.S. а как бы Вы написали, если бы Вам нужно было проверить, только ли разрешенные символы присутствуют в полученной строке? (список разрешенных символов есть | |
|
|
|
|
|
|
|
для: victoor
(09.09.2007 в 14:05)
| | А вот как имело смысл исправить шаблон, чтобы убрать зависимость от локали:
define('REG_FOR_NICK', '/^[A-Za-zА-ЯЁа-яё;0-9-_ ~@\!\^\(\)\.\d]+$/');
|
Как минимум, если сам скрипт в 1251 | |
|
|
|
|
|
|
|
для: Trianon
(10.09.2007 в 11:18)
| | вроде в 1251...
Спасибо за помощь.. | |
|
|
|