Использование арабских символов с ctype_alnum - PullRequest
2 голосов
/ 16 ноября 2011

Мне нужно разрешить арабские имена пользователей на моем веб-сайте, который уже использует ctype_alnum для проверки поля username. Когда я пытаюсь использовать арабские имена пользователей, возвращается сообщение об ошибке проверки. ctype_alnum не распознает арабские символы как буквы и цифры. Как я могу обойти это?

Ответы [ 2 ]

2 голосов
/ 16 ноября 2011

Вы можете найти все арабские символы, используя это регулярное выражение:

preg_match("/^[a-zA-Z\p{Cyrillic}0-9\s\-]+$/u", $string);

Если соответствующая длина равна длине имени пользователя, это арабское имя пользователя.

0 голосов
/ 16 ноября 2011

ctype_alnum распознает только 0-9A-Za-z.

Вы можете либо использовать регулярные выражения (как писал crothhass, пока я писал это), либо вы можете попытаться преобразовать арабский в латинский алфавит, проверьте это с помощью ctype_alnum, а затем снова преобразовайте его.

Но то, что я на самом деле рекомендую, это посмотреть на проблему с другой стороны и просто проверить, какие символы вам НЕ нужны. Вероятно, это пробелы и некоторая пунктуация, поскольку вы все равно используете UTF-8 и можете принимать все остальное.

...