aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/smarty/smarty/libs/plugins/modifier.escape.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/smarty/smarty/libs/plugins/modifier.escape.php')
-rw-r--r--vendor/smarty/smarty/libs/plugins/modifier.escape.php132
1 files changed, 76 insertions, 56 deletions
diff --git a/vendor/smarty/smarty/libs/plugins/modifier.escape.php b/vendor/smarty/smarty/libs/plugins/modifier.escape.php
index 1ae87a7aa..150901c7c 100644
--- a/vendor/smarty/smarty/libs/plugins/modifier.escape.php
+++ b/vendor/smarty/smarty/libs/plugins/modifier.escape.php
@@ -5,7 +5,6 @@
* @package Smarty
* @subpackage PluginsModifier
*/
-
/**
* Smarty escape modifier plugin
* Type: modifier
@@ -30,11 +29,9 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
if ($_double_encode === null) {
$_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
}
-
if (!$char_set) {
$char_set = Smarty::$_CHARSET;
}
-
switch ($esc_type) {
case 'html':
if ($_double_encode) {
@@ -48,14 +45,21 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
// php <5.2.3 - prevent double encoding
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
$string = htmlspecialchars($string, ENT_QUOTES, $char_set);
- $string = str_replace(array('%%%SMARTY_START%%%',
- '%%%SMARTY_END%%%'), array('&',
- ';'), $string);
-
+ $string = str_replace(
+ array(
+ '%%%SMARTY_START%%%',
+ '%%%SMARTY_END%%%'
+ ),
+ array(
+ '&',
+ ';'
+ ),
+ $string
+ );
return $string;
}
}
-
+ // no break
case 'htmlall':
if (Smarty::$_MBSTRING) {
// mb_convert_encoding ignores htmlspecialchars()
@@ -71,18 +75,23 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
$string = htmlspecialchars($string, ENT_QUOTES, $char_set);
$string =
- str_replace(array('%%%SMARTY_START%%%',
- '%%%SMARTY_END%%%'), array('&',
- ';'), $string);
-
+ str_replace(
+ array(
+ '%%%SMARTY_START%%%',
+ '%%%SMARTY_END%%%'
+ ),
+ array(
+ '&',
+ ';'
+ ),
+ $string
+ );
return $string;
}
}
-
// htmlentities() won't convert everything, so use mb_convert_encoding
return mb_convert_encoding($string, 'HTML-ENTITIES', $char_set);
}
-
// no MBString fallback
if ($_double_encode) {
return htmlentities($string, ENT_QUOTES, $char_set, $double_encode);
@@ -92,41 +101,43 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
} else {
$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
$string = htmlentities($string, ENT_QUOTES, $char_set);
- $string = str_replace(array('%%%SMARTY_START%%%',
- '%%%SMARTY_END%%%'), array('&',
- ';'), $string);
-
+ $string = str_replace(
+ array(
+ '%%%SMARTY_START%%%',
+ '%%%SMARTY_END%%%'
+ ),
+ array(
+ '&',
+ ';'
+ ),
+ $string
+ );
return $string;
}
}
-
+ // no break
case 'url':
return rawurlencode($string);
-
case 'urlpathinfo':
return str_replace('%2F', '/', rawurlencode($string));
-
case 'quotes':
// escape unescaped single quotes
return preg_replace("%(?<!\\\\)'%", "\\'", $string);
-
case 'hex':
// escape every byte into hex
// Note that the UTF-8 encoded character รค will be represented as %c3%a4
$return = '';
$_length = strlen($string);
- for ($x = 0; $x < $_length; $x ++) {
+ for ($x = 0; $x < $_length; $x++) {
$return .= '%' . bin2hex($string[ $x ]);
}
-
return $return;
-
case 'hexentity':
$return = '';
if (Smarty::$_MBSTRING) {
if (!$is_loaded_1) {
if (!is_callable('smarty_mb_to_unicode')) {
- require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
+ include_once SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php';
}
$is_loaded_1 = true;
}
@@ -134,23 +145,20 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
$return .= '&#x' . strtoupper(dechex($unicode)) . ';';
}
-
return $return;
}
// no MBString fallback
$_length = strlen($string);
- for ($x = 0; $x < $_length; $x ++) {
+ for ($x = 0; $x < $_length; $x++) {
$return .= '&#x' . bin2hex($string[ $x ]) . ';';
}
-
return $return;
-
case 'decentity':
$return = '';
if (Smarty::$_MBSTRING) {
if (!$is_loaded_1) {
if (!is_callable('smarty_mb_to_unicode')) {
- require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
+ include_once SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php';
}
$is_loaded_1 = true;
}
@@ -158,50 +166,66 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
$return .= '&#' . $unicode . ';';
}
-
return $return;
}
// no MBString fallback
$_length = strlen($string);
- for ($x = 0; $x < $_length; $x ++) {
+ for ($x = 0; $x < $_length; $x++) {
$return .= '&#' . ord($string[ $x ]) . ';';
}
-
return $return;
-
case 'javascript':
// escape quotes and backslashes, newlines, etc.
- return strtr($string, array('\\' => '\\\\',
- "'" => "\\'",
- '"' => '\\"',
- "\r" => '\\r',
- "\n" => '\\n',
- '</' => '<\/'));
-
+ return strtr(
+ $string,
+ array(
+ '\\' => '\\\\',
+ "'" => "\\'",
+ '"' => '\\"',
+ "\r" => '\\r',
+ "\n" => '\\n',
+ '</' => '<\/'
+ )
+ );
case 'mail':
if (Smarty::$_MBSTRING) {
if (!$is_loaded_2) {
if (!is_callable('smarty_mb_str_replace')) {
- require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php');
+ include_once SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php';
}
$is_loaded_2 = true;
}
- return smarty_mb_str_replace(array('@',
- '.'), array(' [AT] ',
- ' [DOT] '), $string);
+ return smarty_mb_str_replace(
+ array(
+ '@',
+ '.'
+ ),
+ array(
+ ' [AT] ',
+ ' [DOT] '
+ ),
+ $string
+ );
}
// no MBString fallback
- return str_replace(array('@',
- '.'), array(' [AT] ',
- ' [DOT] '), $string);
-
+ return str_replace(
+ array(
+ '@',
+ '.'
+ ),
+ array(
+ ' [AT] ',
+ ' [DOT] '
+ ),
+ $string
+ );
case 'nonstd':
// escape non-standard chars, such as ms document quotes
$return = '';
if (Smarty::$_MBSTRING) {
if (!$is_loaded_1) {
if (!is_callable('smarty_mb_to_unicode')) {
- require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
+ include_once SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php';
}
$is_loaded_1 = true;
}
@@ -212,12 +236,10 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
$return .= chr($unicode);
}
}
-
return $return;
}
-
$_length = strlen($string);
- for ($_i = 0; $_i < $_length; $_i ++) {
+ for ($_i = 0; $_i < $_length; $_i++) {
$_ord = ord(substr($string, $_i, 1));
// non-standard char, escape it
if ($_ord >= 126) {
@@ -226,9 +248,7 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $
$return .= substr($string, $_i, 1);
}
}
-
return $return;
-
default:
return $string;
}