X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;f=wwwroot%2Fsmarty%2Flibs%2Fplugins%2Fmodifier.escape.php;h=a2f52b232c1316ee9b7d0a2ea70cfc41c1b012c6;hb=71a598e9ace080c3a636a39cc110e1ed169a1a4e;hp=ca5c006257ddf8ac7f3a739ccec79f1d757132c3;hpb=e034221efbc7970ec58be22d7517fd3c503dc903;p=mirrors%2FKyberia-bloodline.git diff --git a/wwwroot/smarty/libs/plugins/modifier.escape.php b/wwwroot/smarty/libs/plugins/modifier.escape.php index ca5c006..a2f52b2 100644 --- a/wwwroot/smarty/libs/plugins/modifier.escape.php +++ b/wwwroot/smarty/libs/plugins/modifier.escape.php @@ -14,22 +14,26 @@ * Purpose: Escape the string according to escapement type * @link http://smarty.php.net/manual/en/language.modifier.escape.php * escape (Smarty online manual) + * @author Monte Ohrt * @param string * @param html|htmlall|url|quotes|hex|hexentity|javascript * @return string */ -function smarty_modifier_escape($string, $esc_type = 'html') +function smarty_modifier_escape($string, $esc_type = 'html', $char_set = 'ISO-8859-1') { switch ($esc_type) { case 'html': - return htmlspecialchars($string, ENT_QUOTES); + return htmlspecialchars($string, ENT_QUOTES, $char_set); case 'htmlall': - return htmlentities($string, ENT_QUOTES); + return htmlentities($string, ENT_QUOTES, $char_set); case 'url': return rawurlencode($string); + case 'urlpathinfo': + return str_replace('%2F','/',rawurlencode($string)); + case 'quotes': // escape unescaped single quotes return preg_replace("%(?'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n',''<\/')); - + case 'mail': // safe way to display e-mail address on a web page return str_replace(array('@', '.'),array(' [AT] ', ' [DOT] '), $string); - + case 'nonstd': // escape non-standard chars, such as ms document quotes $_res = ''; for($_i = 0, $_len = strlen($string); $_i < $_len; $_i++) { - $_ord = ord($string{$_i}); + $_ord = ord(substr($string, $_i, 1)); // non-standard char, escape it if($_ord >= 126){ $_res .= '&#' . $_ord . ';'; } else { - $_res .= $string{$_i}; + $_res .= substr($string, $_i, 1); } } return $_res;