diff -r 000000000000 -r c63de9eb7045 smarty/plugins/shared.escape_special_chars.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smarty/plugins/shared.escape_special_chars.php Sun Mar 23 14:59:33 2008 -0400 @@ -0,0 +1,31 @@ + + * Purpose: used by other smarty functions to escape + * special chars except for already escaped ones + * @author Monte Ohrt + * @param string + * @return string + */ +function smarty_function_escape_special_chars($string) +{ + if(!is_array($string)) { + $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string); + $string = htmlspecialchars($string); + $string = str_replace(array('%%%SMARTY_START%%%','%%%SMARTY_END%%%'), array('&',';'), $string); + } + return $string; +} + +/* vim: set expandtab: */ + +?>