Что происходит, когда вы отвлекаетесь от мяча? Расширение CType становится частью PHP по умолчанию!
Должен признаться, я никогда не трогал их до недавнего времени и застрял в мышлении «валидация = регулярные выражения». Меня удивляет то, что я не видел, чтобы кто-нибудь еще их использовал — большинство библиотек выполняют некоторую проверку, включая QuickForm и Validate, все используют регулярные выражения. Кто-нибудь знает почему? Их не сложно использовать, но воспользуйтесь регулярными выражениями для старых версий PHP.
Функции CType являются оболочками для ctype.h , стандартной части C, поэтому они очень хорошо протестированы.
Дело в том, что для проверки определенных базовых типов данных они работают лучше, чем регулярные выражения, поскольку они быстрее и поддерживают международные наборы символов. Это также делает ваш код более «декларативным» по своей природе — довольно ясно, что делает ctype_digit () , когда ‘/(^-?dd*.d*$)|(^-?dd*$)|(^-?.dd * $) / ‘менее очевидно.
Например, скажем, у вас есть поле в вашей форме для «Имя». Используя регулярные выражения, вы, вероятно, подтвердите это примерно так;
if ( !preg_match('/^[a-zA-Z]*$/', $first_name) ) {
die ('Alpha characters only please!');
}
Теперь хорошо, если тебя зовут Джо, но что если тебя зовут Н