Глава 11. Zend_Filter
Пред. |  | След.

## Глава 11. Zend_Filter

## 11.1. Введение

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

Что такое фильтр?

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

Это базовое определение фильтра может быть расширено включением общих преобразований ввода. Часто встречающееся в веб-приложениях преобразование - экранирование сущностей HTML (HTML entities). Например, если поле формы автоматически заполняется ненадежными данными (пример, данными из веб-броузера), то это значение не должно включать в себя сущности HTML, либо эти сущности должны быть экранированы, для предотвращения нежелательного поведения и угроз безопасности. В соответствии с этими требованиями сущности HTML должны быть удалены или экранированы - выбор подхода зависит от ситуации. Фильтр, который экранирует сущности HTML, тем не менее, преобразовывает ввод (например, "`&`" преобразовывается в "`&amp;`"). Поддержка таких случаев использования важна для веб-разработчиков и "фильтрация" в контексте использования Zend_Filter подразумевает выполнение некоторых преобразований над входными данными.

Такое определение фильтра дает основу для `Zend_Filter_Interface`, который требует от классов фильтров реализации одного метода с именем `filter()`.

Ниже приведен пример использования фильтра с двумя вариантами входных данных - амперсандом (`&`) и двойными кавычками (`"`).

    <?php
    require_once 'Zend/Filter/HtmlEntities.php';
    $htmlEntities = new Zend_Filter_HtmlEntities();
    echo $htmlEntities->filter('&'); // &amp;
    echo $htmlEntities->filter('"'); // &quot;

Пред. |  | След.
10.8. Специальные классы лент и записей | Начало | 11.2. Цепочки фильтров