Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: проверка ввода
Форумы портала PHP.SU » PHP » Регулярные выражения » проверка ввода

Страниц (1): [1]
 

1. SAD - 22 Мая, 2010 - 19:16:41 - перейти к сообщению
Я делаю небольшую проверку на корректный ввод фамилии
PHP:
скопировать код в буфер обмена
  1. function fam($fam)
  2.   {
  3.     if (strlen($fam)==0)
  4.       return -1;
  5.     if(!preg_match('#^\w+(?:\-\w+)?$#',$fam))
  6.       return -1;
  7.     return $fam;
  8.   }

Вот в чем дело, на хостинге русские буквы не проходят проверку, а на локалке все нормально. В чем может быть причина?
2. Мелкий - 22 Мая, 2010 - 19:37:39 - перейти к сообщению
Разные локали, например.
3. SAD - 22 Мая, 2010 - 19:39:02 - перейти к сообщению
проблема была в локали, можно закрывать тему
4. JustUserR - 23 Мая, 2010 - 13:44:19 - перейти к сообщению
SAD пишет:
Вот в чем дело, на хостинге русские буквы не проходят проверку, а на локалке все нормально. В чем может быть причина?
Если вам известно в какой кодировки приходят данные или вы можете ее определить (Что возможно с помощью Accept-Charset к примеру) - то можете использовать в регулярном выражении шаблоны \xAB для символов что позволят унифицировать регулярное выражение вне зависимости от его кодировки файла и текущей локали

 

Powered by ExBB FM 1.0 RC1