Использование арабских символов ctype_alnum

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

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

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

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

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

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

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