The following is a list of a few built-in stream filters for
use with stream_filter_append().
Your version of PHP may have more filters (or fewer) than those
listed here.
It is worth noting a slight asymmetry between
stream_filter_append()
and stream_filter_prepend().
Every PHP stream contains a small read buffer
where it stores blocks of data retrieved from the
filesystem or other resource in order to process data
in the most efficient manner. As soon as data is pulled
from the resource into the stream's internal buffer, it
is immediately processed through any attached filters whether
the PHP application is actually ready for the data or not.
If data is sitting in the read buffer when a filter is
appended, this data will be immediately
processed through that filter making the fact that it was
sitting in the buffer seem transparent. However, if data is
sitting in the read buffer when a filter is
prepended, this data will NOT
be processed through that filter. It will instead wait until
the next block of data is retrieved from the resource.
For a list of filters installed in your version of
PHP use stream_get_filters().
Each of these filters does precisely what their name implies and
correspond to the behavior of a built-in php string handling function.
For more information on a given filter, refer to the manual page for
the corresponding function.
string.rot13
(since PHP 4.3.0)
Use of this filter is equivalent to processing all stream data through
the str_rot13() function.
Example N-1. string.rot13
<?php $fp = fopen('php://output', 'w'); stream_filter_append($fp, 'string.rot13'); fwrite($fp, "This is a test.\n"); /* Outputs: Guvf vf n grfg. */ ?>
string.toupper
(since PHP 5.0.0)
Use of this filter is equivalent to processing all stream data through
the strtoupper() function.
Example N-2. string.toupper
<?php $fp = fopen('php://output', 'w'); stream_filter_append($fp, 'string.toupper'); fwrite($fp, "This is a test.\n"); /* Outputs: THIS IS A TEST. */ ?>
string.tolower
(since PHP 5.0.0)
Use of this filter is equivalent to processing all stream data through
the strtolower() function.
Example N-3. string.tolower
<?php $fp = fopen('php://output', 'w'); stream_filter_append($fp, 'string.tolower'); fwrite($fp, "This is a test.\n"); /* Outputs: this is a test. */ ?>
string.strip_tags
(since PHP 5.0.0)
Use of this filter is equivalent to processing all stream data through
the strip_tags() function.
It accepts parameters in one of two forms:
Either as a string containing a list of tags similar to the
second parameter of the strip_tags() function,
or as an array of tag names.
Example N-4. string.strip_tags
<?php $fp = fopen('php://output', 'w'); stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>"); fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n"); fclose($fp); /* Outputs: <b>bolded text</b> enlarged to a level 1 heading */
$fp = fopen('php://output', 'w'); stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u')); fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n"); fclose($fp); /* Outputs: <b>bolded text</b> enlarged to a level 1 heading */ ?>