|
|
|
| Сделал сайт, который проверял на домашней машине с WinXP+Denver.
Стал размещать его на хостинге с ОС Debian.
Появились разного рода проблемы.
Одна из них.
Для проверки вводимых данных есть конструкция:
if ( !preg_match('/^[\w. _-]{1,128}$/', $name) ) {...код...}
|
которая с русскими символами работала дома, но не работает на хостинге.
Экспериментально было выяснено, что на хостинге класс \w обозначает только латинские символы и цифры. Это особенности Unix-систем или что-то другое? | |
|
|
|
|
|
|
|
для: Adj
(20.01.2010 в 21:05)
| |
"word" символ - это произвольная цифра, буква или символ подчеркивания, проще
говоря, любой символ, который может являться частью 'слова' в Perl. Определение букв и
цифр управляется символьными таблицами, с которыми PCRE был собран. И, как
следствие, эти наборы могут отличаться в различных локализированных дистрибутивах
. Например, в локали "fr" (Франция) некоторые символы с кодом выше 128 используются для
записи ударных символов и, соответственно, соответствуют маске \w.
|
это может быть причиной | |
|
|
|
|
|
|
|
для: GeorgeIV
(21.01.2010 в 10:01)
| | Понял, спасибо. Будем переделывать. | |
|
|
|