What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
When the template is invoked via
display()
or
fetch()
, its output can
be sent through one or more output filters. This differs from
postfilters
because postfilters operate on compiled templates before they are saved to
the disk, whereas output filters operate on the template output when it is
executed.
Output filters can be either
registered or loaded
from the
plugins directory by using the
load_filter()
method or by setting the
$autoload_filters
variable.
Smarty will pass the template output as the first argument,
and expect the function to return the result of the processing.
Example 15.4. Using a template outputfilter
<?php // put this in your application function protect_email($tpl_output, &$smarty) { $tpl_output = preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!', '$1%40$2', $tpl_output); return $tpl_output; } // register the outputfilter $smarty->register_outputfilter('protect_email'); $smarty->display('index.tpl'); // now any occurrence of an email address in the template output will have // a simple protection against spambots ?>
See also
register_outputfilter()
,
load_filter()
,
$autoload_filters
,
postfilters and
$plugins_dir
.