You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

shared.escape_special_chars.php 982B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. /**
  3. * Smarty shared plugin
  4. *
  5. * @package Smarty
  6. * @subpackage PluginsShared
  7. */
  8. /**
  9. * escape_special_chars common function
  10. * Function: smarty_function_escape_special_chars
  11. * Purpose: used by other smarty functions to escape
  12. * special chars except for already escaped ones
  13. *
  14. * @author Monte Ohrt <monte at ohrt dot com>
  15. *
  16. * @param string $string text that should by escaped
  17. *
  18. * @return string
  19. */
  20. function smarty_function_escape_special_chars($string)
  21. {
  22. if (!is_array($string)) {
  23. if (version_compare(PHP_VERSION, '5.2.3', '>=')) {
  24. $string = htmlspecialchars($string, ENT_COMPAT, Smarty::$_CHARSET, false);
  25. } else {
  26. $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
  27. $string = htmlspecialchars($string);
  28. $string = str_replace(array('%%%SMARTY_START%%%', '%%%SMARTY_END%%%'), array('&', ';'), $string);
  29. }
  30. }
  31. return $string;
  32. }