Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: русская локаль

Сообщения:  [1-9] 

 
 автор: victoor   (12.09.2007 в 23:58)   письмо автору
 
   для: Trianon   (10.09.2007 в 11:18)
 

вроде в 1251...
Спасибо за помощь..

   
 
 автор: victoor   (12.09.2007 в 23:56)   письмо автору
 
   для: mihdan   (10.09.2007 в 10:44)
 

)>Кривовато написали, ну ничего главное что работает, да ?
ага, работает...

P.S. а как бы Вы написали, если бы Вам нужно было проверить, только ли разрешенные символы присутствуют в полученной строке? (список разрешенных символов есть

   
 
 автор: Trianon   (10.09.2007 в 11:18)   письмо автору
 
   для: victoor   (09.09.2007 в 14:05)
 

А вот как имело смысл исправить шаблон, чтобы убрать зависимость от локали:

define('REG_FOR_NICK', '/^[A-Za-zА-ЯЁа-яё;0-9-_ ~@\!\^\(\)\.\d]+$/');

Как минимум, если сам скрипт в 1251

   
 
 автор: mihdan   (10.09.2007 в 10:44)   письмо автору
 
   для: victoor   (09.09.2007 в 14:05)
 

Кривовато написали, ну ничего главное что работает, да ?

   
 
 автор: victoor   (09.09.2007 в 14:05)   письмо автору
 
   для: 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'); #Рег.выражение для ника ...

   
 
 автор: Trianon   (08.09.2007 в 12:53)   письмо автору
 
   для: victoor   (08.09.2007 в 12:43)
 

И на что же эта функция опиралась, если не на локаль?
По какой причине она оказалась непереносимой?

   
 
 автор: victoor   (08.09.2007 в 12:43)   письмо автору
 
   для: cheops   (08.09.2007 в 11:49)
 

Linux

В принципе, проблема решена...
Как оказалось, функция, которая определяла набор разрешенных символов у меня дома и на предыдущем хостинге считала маленькие и большие буквы одинаковыми (т.е. в разрещенных символах были записаны только маленькие буквы, а нормально проходили и заглавные), а тут маленькие и большие - разное. Но после добавления в список разрешенных символов еще и заглавных символов все пошло нормально. А на локаль грешил потому, что на на предыдущем хостинге именно установка нужной локали решило проблему.

Но как решить проблему с установкой локали, всеравно будет интересно послушать - может еще где-либо пригодится...

   
 
 автор: cheops   (08.09.2007 в 11:49)   письмо автору
 
   для: victoor   (07.09.2007 в 15:35)
 

А операционная система какая используется?

   
 
 автор: victoor   (07.09.2007 в 15:35)   письмо автору
 
 

Здравствуйте!
Подскажите пожалуйста, как можно узнать установленные в системе локали...
Просто хочу установить русскую локаль с кодировкой CP1251, но админ хостинга незнает ее названия.

сейчас установлена локаль С (что это такое?)...
названия локалей типа 'ru_RU.CP1251', 'rus_RUS.1251', 'ru_RU.1251', 'rus_RUS.CP1251' не подходят.
в качестве панели управления установлена cpanel 11 версии...

И вообще как эти локали устанавливаются на сервер (может, легче попросить админа хостинга установить эту локаль? но тогда откуда ее взять, и не факт, что он знает, как это делается...)

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования