Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5: Новые возможности.

  Все выпуски  

ZEND_FRAMEWORK: Класс Zend_Filter


PHP 5: Новые возможности.

Фильтрация данных - одна из типичных задач, стоящих перед разработчиками. Особенно, это касается данных, введенных пользователями (посетителями веб сайта).

Класс Zend_Filter предоставляет разработчику набор статических методов, обеспечивающих возможность фильтровать скалярные данные. В то же время, пользовательский ввод обычно бывает представлен в виде массивов ($_POST, $_GET и т. п.). Для работы с массивами предназначен класс Zend_Filter_Input.

Фильтрация данных с помощью указанных классов позволяет обеспечивать достаточную надежность, избегая при этом чрезмерного усложнения исходного кода.

Для фильтрации скалярных данных могут быть использованы статические методы класса Zend_Filter.

print
Zend_Filter::getAlpha('Foo123Bar');
FooBar

Фильтрование по принципу «белого списка». Методы, начинающиеся со слова is, проверяют валидность данных в соответствии с заданным критерием.

if (Zend_Filter::isInt($value) {
    // the value is integer
} else {
    // the value is not integer
}
        

«Слепое» фильтрование. Методы, начинающиеся со слова get, не проверяют данные, а лишь возвращают ту их часть, которая соответствует заданному критерию.

print Zend_Filter::getAlnum('Foo_Bar_123');
FooBar123

Фильтрование по принципу «черного списка». Методы, начинающиеся со слова no, действуют по типу «слепых», но используют заданный критерий для исключения инвалидных данных.

print Zend_Filter::noTags("Foo<br />Bar");
FooBar

В отличие от класса Zend_Filter, методы класса Zend_Filter_Input не статические, поэтому для их использования необходимо сначала создать новый объект этого класса.

$data = new Zend_Filter_Input($_POST);
[Внимание]Внимание

Исходные данные будут при этом установлены в null, поэтому прямой доступ к ним окажется невозможным. Для получения данных в исходном виде, однако, может быть использован метод getRaw().

$raw = $data->getRaw();

Можно также запретить обнуление исходных данных, использовав второй необязательный параметр при создании нового объекта.

$data = new Zend_Filter_Input($_POST,
false);

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

Фильтрование по принципу «белого списка». Методы, начинающиеся со слова test, проверяют валидность данных в соответствии с заданным критерием.

if ($ip = $data->testIp('ip')) {
    // the IP is valid
} else {
    // the IP is invalid
}
        

«Слепое» фильтрование. Методы, начинающиеся со слова get, не проверяют данные, а лишь возвращают ту их часть, которая соответствует заданному критерию.

$dir = $data->getDir('filename');

Фильтрование по принципу «черного списка». Методы, начинающиеся со слова no, действуют по типу «слепых», но используют заданный критерий для исключения инвалидных данных.

$filename = $data->noPath('filename');

Created with DocBook


В избранное