- Timestamp:
- 2012/12/28 22:39:21 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-multilang/data/class/helper/SC_Helper_Locale.php
r22099 r22186 70 70 } 71 71 72 $return = $string; 72 73 // Get string list of specified language. 73 if ($lang_code == 'en') { 74 return $string; 75 } else { 74 if ($lang_code != 'en') { 76 75 $translations = SC_Helper_Locale_Ex::$_instance->get_translations($lang_code, $device_type_id); 77 76 // Whether a string which corresponding with alias is exist. 78 if (isset($translations[$string])) { 79 return $translations[$string]; 80 } 81 else { 82 return $string; 83 } 84 } 77 if (isset($translations[$return])) { 78 $return = $translations[$return]; 79 } 80 } 81 82 $esc_types = $options['escape']; 83 if (is_null($esc_types) && $string[0] !== '<') { 84 $esc_types = 'h'; 85 } 86 foreach (explode(',', $esc_types) as $esc_type) { 87 switch ($esc_type) { 88 case 'h': 89 case 'html': 90 $return = htmlspecialchars($return, ENT_QUOTES); 91 break; 92 93 case 'j': 94 case 'javascript': 95 // escape quotes and backslashes, newlines, etc. 96 $return = strtr($return, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n','</'=>'<\/')); 97 break; 98 99 case 'nl2br': 100 $return = nl2br($return, true); 101 break; 102 103 case '': 104 case 'none': 105 break; 106 107 case 'htmlall': 108 $return = htmlentities($return, ENT_QUOTES); 109 break; 110 111 case 'u': 112 case 'url': 113 $return = rawurlencode($return); 114 break; 115 116 case 'urlpathinfo': 117 $return = str_replace('%2F','/',rawurlencode($return)); 118 break; 119 120 case 'quotes': 121 // escape unescaped single quotes 122 $return = preg_replace("%(?<!\\\\)'%", "\\'", $return); 123 break; 124 125 case 'hex': 126 // escape every character into hex 127 $text = ''; 128 for ($x=0; $x < strlen($return); $x++) { 129 $text .= '%' . bin2hex($return[$x]); 130 } 131 $return = $text; 132 break; 133 134 case 'hexentity': 135 $text = ''; 136 for ($x=0; $x < strlen($return); $x++) { 137 $text .= '&#x' . bin2hex($return[$x]) . ';'; 138 } 139 $return = $text; 140 break; 141 142 case 'decentity': 143 $text = ''; 144 for ($x=0; $x < strlen($return); $x++) { 145 $text .= '&#' . ord($return[$x]) . ';'; 146 } 147 $return = $text; 148 break; 149 150 case 'mail': 151 // safe way to display e-mail address on a web page 152 $return = str_replace(array('@', '.'),array(' [AT] ', ' [DOT] '), $return); 153 break; 154 155 case 'nonstd': 156 // escape non-standard chars, such as ms document quotes 157 $_res = ''; 158 for($_i = 0, $_len = strlen($return); $_i < $_len; $_i++) { 159 $_ord = ord(substr($return, $_i, 1)); 160 // non-standard char, escape it 161 if($_ord >= 126){ 162 $_res .= '&#' . $_ord . ';'; 163 } 164 else { 165 $_res .= substr($return, $_i, 1); 166 } 167 } 168 $return = $_res; 169 break; 170 171 default: 172 trigger_error('unknown escape type. ' . var_export(func_get_args(), true), E_USER_WARNING); 173 break; 174 } 175 } 176 177 return $return; 85 178 } 86 179
Note: See TracChangeset
for help on using the changeset viewer.