PHP: проверьте только символы

Как я могу проверить, содержит ли переменная только символы, а не числа?

Я проверил is_string, но тогда вы можете взломать его, если вы сделаете переменную «123».

Используйте ctype_alpha() .

Проверяет, являются ли все символы в предоставленной строке, тексте, буквенными.

Обратите внимание, что эта функция, по-видимому, специфична для локали, поэтому, если вы хотите протестировать символы Umlauts / accented, вам может потребоваться сначала установить правильный язык.

Если использование локалей не является вариантом, здесь используется подход, основанный на регулярном выражении, который обещает обнаруживать символы Unicode на всех языках, что было бы идеальным подходом, если он будет работать (я сам его не тестировал).

ctype_alpha() – это то, что вы ищете.

Из документов:

Проверяет, являются ли все символы в предоставленной строке, тексте, буквенными.

В стандартном языке буквы C – это просто [A-Za-z], а ctype_alpha() эквивалентно (ctype_upper($text) || ctype_lower($text)) если $text – это всего лишь один символ, но на других языках есть буквы которые не считаются ни верхним, ни нижним регистром.

Применение:

 if(ctype_alpha($string)) { //variable is characters only }