In the physical world, a filter is typically used for removing unwanted portions of input, and the desired portion of the input passes through as filter output (e.g., coffee). In such scenarios, a filter is an operator that produces a subset of the input. This type of filtering is useful for web applications - removing illegal input, trimming unnecessary white space, etc.
This basic definition of a filter may be extended to include
generalized transformations upon input. A common transformation
applied in web applications is the escaping of HTML entities. For
example, if a form field is automatically populated with untrusted
input (e.g., from a web browser), this value should either be free
of HTML entities or contain only escaped HTML
entities, in order to prevent undesired behavior and security vulnerabilities. To meet
this requirement, HTML entities that appear in the input must
either be removed or escaped. Of course, which approach is more
appropriate depends on the situation. A filter that removes the
HTML entities operates within the scope of the first definition of
filter - an operator that produces a subset of the input. A filter
that escapes the HTML entities, however, transforms the input
(e.g., "&" is transformed to
"&"). Supporting such use cases for web
developers is important, and "to filter," in the context of using
Zend_Filter, means to perform some transformations upon input
data.




