Работа с функциями расширения Ctype

PHP расширение Ctype предоставляет целый набор функций для проверки строк и типов данных. В этом уроке мы посмотрим на синтаксис, познакомимся с функциями и рассмотрим пример, как их можно использовать для валидации данных.

Данное расширение по умолчанию активно в PHP версии 4.2 и выше.

Если вы знакомы с языком Си, то найдёте некоторые сходства в функциях (не забывайте, что PHP написан на языке Си). Также если вы знакомы с языком Phyton, то не найдёте ничего общего с его собственной библиотекой с точно таким же названием. Тут просто совпали названия расширений.

Как использовать расширение?

Очень просто. К примеру, вы хотите проверить, встречается ли символ в каком-то заданном диапазоне, или является ли значение переменной определённым типом данных. Мы можем использовать эти функции для определения, являются ли все символы в строке прописными или цифрами или содержат значения в шестнадцатеричном виде и так далее.

Также следует взять на заметку, что передавать в эти функции нужно строки. Вы конечно можете передавать и числа, но в PHP руководстве на каждой странице расширения вы можете увидеть следующее сообщение:

Для извлечения пользы из работы этой функции ей необходимо передавать строку (string), поэтому, если ей, к примеру, будет передан integer, то она может не возвратить ожидаемый результат. Однако, необходимо учитывать, что HTML-формы передают числовые строки, а не целые числа. Подробнее читайте в разделе "Типы" данного руководства.

Вот пример работы функции ctype_digit() со строками и числами:

<?php
$numeric_string = "42";
$integer        = 42;

ctype_digit($numeric_string); // true
ctype_digit($integer);        // false (ASCII код 42 это '*')

is_numeric($numeric_string);  // true
is_numeric($integer);         // true

Первое применение функции вернёт истину, второе - ложь. Так происходи,т потому как ASCII символ целого числа 42 это знак *.

Конечно же применение ctype функций - это не единственный способ валидации данных. Вы также можете пользоваться и другими возможностями языка, к примеру, функцией is_numeric().

<?php
is_numeric($numeric_string);  // true
is_numeric($integer);         // true

Также существуют и другие функции, начинающиеся на is_*: is_float(), is_integer() и т.д.

Почему мы затронули эти функции? Просто для того, чтобы вы понимали, что ctype - это не единственная возможность валидации данных.

Следует обратить внимание на то, что Ctype функции работают значительно быстрее, чем регулярные выражения и даже эквивалентные "str_*" и "is_*"функции. Это происходит потому, что ctype использует родную библиотеку C и поэтому выполняется значительно быстрее.

Какие функции нам доступны?

Итак, какие же функции нам доступны? Ловите список:

  • ctype_alnum() – проверяет на наличие буквенно-цифровых символов (A – Z, прописные или заглавные, 0-9, специальные символы, знаки пунктуации и т.д.);
  • ctype_alpha() – проверяет на наличие буквенных символов (A – Z, прописные или заглавные);
  • ctype_cntrl() – проверяет наличие специальных символов (таких как \n\r\t);
  • ctype_digit() – проверяет на наличие цифровых символов в строке (0-9, запатую, ...);
  • ctype_graph() – проверяет наличие невидимых символов в строке;
  • ctype_lower() – проверяет наличие символов в нижнем регистре;
  • ctype_print() – проверяет наличие видимых элементов в строке;
  • ctype_punct() – проверяет, являются ли все символы в строке символами пунктуации;
  • ctype_space() – проверяет наличие символов, генерирующих пробел;
  • ctype_upper() – Проверяет, все ли символы в переданной строке text являются буквами в верхнем регистре;
  • ctype_xdigit() – проверяет наличие символов в шестнадцатеричном виде.

Применение

Применять данные функции также очень просто. Помещаем их в if, и в зависимости от результата, выполняем те или иные действия. Пример:

<?php
if (ctype_alnum($string)) {
    echo "This string totally works";
}
else {
    echo "And this one not so much";
}

Если переменная $string содержит строку “Azxc1234″, то вы увидите первое сообщение. Если переменная $string равна “123#Axy”, то проверка провалится, потому что символ # не относится к списку разрешённых в функции ctype_alnum.

Если же передать пустую строку, то в PHP 5.1 и выше функция вернёт false.

Ещё раз предупреждаю о том, что в данные функции нужно передавать строки, иначе может возникнуть такая ситуация:

<?php
$integer = 42;

ctype_digit($integer);         // false
ctype_digit((string)$integer); // true

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/8yy-eqgSylc/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Работа с функциями расширения Ctype | | 2013-05-27 08:28:33 | | Статьи Web-мастеру | | PHP расширение Ctype предоставляет целый набор функций для проверки строк и типов данных. В этом уроке мы посмотрим на синтаксис, познакомимся с функциями и рассмотрим пример, как их можно | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: