diff options
Diffstat (limited to 'include/smarty/libs/plugins/shared.escape_special_chars.php')
-rw-r--r-- | include/smarty/libs/plugins/shared.escape_special_chars.php | 68 |
1 files changed, 44 insertions, 24 deletions
diff --git a/include/smarty/libs/plugins/shared.escape_special_chars.php b/include/smarty/libs/plugins/shared.escape_special_chars.php index c07ce31be..d2609b674 100644 --- a/include/smarty/libs/plugins/shared.escape_special_chars.php +++ b/include/smarty/libs/plugins/shared.escape_special_chars.php @@ -1,31 +1,51 @@ <?php /** * Smarty shared plugin - * @package Smarty - * @subpackage plugins - */ - - -/** - * escape_special_chars common function * - * Function: smarty_function_escape_special_chars<br> - * Purpose: used by other smarty functions to escape - * special chars except for already escaped ones - * @author Monte Ohrt <monte at ohrt dot com> - * @param string - * @return string + * @package Smarty + * @subpackage PluginsShared */ -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: */ +if (version_compare(PHP_VERSION, '5.2.3', '>=')) { + /** + * escape_special_chars common function + * + * Function: smarty_function_escape_special_chars<br> + * Purpose: used by other smarty functions to escape + * special chars except for already escaped ones + * + * @author Monte Ohrt <monte at ohrt dot com> + * @param string $string text that should by escaped + * @return string + */ + function smarty_function_escape_special_chars($string) + { + if (!is_array($string)) { + $string = htmlspecialchars($string, ENT_COMPAT, Smarty::$_CHARSET, false); + } + return $string; + } +} else { + /** + * escape_special_chars common function + * + * Function: smarty_function_escape_special_chars<br> + * Purpose: used by other smarty functions to escape + * special chars except for already escaped ones + * + * @author Monte Ohrt <monte at ohrt dot com> + * @param string $string text that should by escaped + * @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; + } +} -?> +?>
\ No newline at end of file |