| 1 | <?php |
| 2 | |
| 3 | /** |
| 4 | * SquirrelMail html translation table documentation |
| 5 | * |
| 6 | * SquirrelMail provides own implementation of htmlentities() and |
| 7 | * get_html_translation_table() functions. Functions are called |
| 8 | * sq_get_html_translation_table() and sq_htmlentities(). They are |
| 9 | * included in functions/strings.php |
| 10 | * |
| 11 | * sq_htmlentities uses same syntax as functions available in php 4.1.0 |
| 12 | * sq_get_html_translation_table adds third option that sets charset. |
| 13 | * |
| 14 | * <pre> |
| 15 | * string sq_htmlentities ( string string [, int quote_style [, string charset]]) |
| 16 | * array sq_get_html_translation_table ( int table [, int quote_style [, string charset]]) |
| 17 | * </pre> |
| 18 | * |
| 19 | * If sq_get_html_translation_table function is called with HTML_SPECIALCHARS option, |
| 20 | * it returns us-ascii translation table. If it is called with HTML_ENTITIES option, |
| 21 | * it returns translation table defined by charset. Function defaults to us-ascii charset |
| 22 | * and not to iso-8859-1. |
| 23 | * |
| 24 | * Why own functions are used instead of htmlspecialchars() and |
| 25 | * htmlentities() provided by php. |
| 26 | * |
| 27 | * <ul> |
| 28 | * <li>a) removes dependency on options available only in php v.4.1+</li> |
| 29 | * <li>b) default behavior of htmlentities() is disastrous in non iso-8859-1 environment.</li> |
| 30 | * <li>c) provides better control of transformations.</li> |
| 31 | * </ul> |
| 32 | * |
| 33 | * <pre> |
| 34 | * --- Full list of entities (w3.org html4.01 recommendations) |
| 35 | * 1. regural symbols |
| 36 | * U+0022 - " |
| 37 | * (replaced only when $style is not ENT_NOQUOTES or 0) |
| 38 | * U+0026 - & |
| 39 | * U+0027 - ' |
| 40 | * (replaced only when $style is ENT_QUOTES or 3) |
| 41 | * U+003C - < |
| 42 | * U+003E - > |
| 43 | * |
| 44 | * 2. latin1 symbols (HTMLlat1.ent) |
| 45 | * U+00A0 - -- no-break space = non-breaking space |
| 46 | * U+00A1 - ¡ -- inverted exclamation mark |
| 47 | * U+00A2 - ¢ -- cent sign |
| 48 | * U+00A3 - £ -- pound sign |
| 49 | * U+00A4 - ¤ -- currency sign |
| 50 | * U+00A5 - ¥ -- yen sign |
| 51 | * U+00A6 - ¦ -- broken bar |
| 52 | * U+00A7 - § -- section sign |
| 53 | * U+00A8 - ¨ -- diaeresis |
| 54 | * U+00A9 - © -- copyright sign |
| 55 | * U+00AA - ª -- feminine ordinal indicator |
| 56 | * U+00AB - « -- left-pointing double angle quotation mark = left pointing guillemet |
| 57 | * U+00AC - ¬ -- not sign |
| 58 | * U+00AD - ­ -- soft hyphen = discretionary hyphen |
| 59 | * U+00AE - ® -- registered sign = registered trade mark sign |
| 60 | * U+00AF - ¯ -- macron = spacing macron = overline = APL overbar |
| 61 | * U+00B0 - ° -- degree sign |
| 62 | * U+00B1 - ± -- plus-minus sign = plus-or-minus sign |
| 63 | * U+00B2 - ² -- superscript two = superscript digit two = squared |
| 64 | * U+00B3 - ³ -- superscript three = superscript digit three = cubed |
| 65 | * U+00B4 - ´ -- acute accent = spacing acute |
| 66 | * U+00B5 - µ -- micro sign |
| 67 | * U+00B6 - ¶ -- pilcrow sign = paragraph sign |
| 68 | * U+00B7 - · -- middle dot = Georgian comma = Greek middle dot |
| 69 | * U+00B8 - ¸ -- cedilla = spacing cedilla |
| 70 | * U+00B9 - ¹ -- superscript one = superscript digit one |
| 71 | * U+00BA - º -- masculine ordinal indicator |
| 72 | * U+00BB - » -- right-pointing double angle quotation mark = right pointing guillemet |
| 73 | * U+00BC - ¼ -- vulgar fraction one quarter = fraction one quarter |
| 74 | * U+00BD - ½ -- vulgar fraction one half = fraction one half |
| 75 | * U+00BE - ¾ -- vulgar fraction three quarters = fraction three quarters |
| 76 | * U+00BF - ¿ -- inverted question mark = turned question mark |
| 77 | * U+0180 - À -- latin capital letter A with grave = latin capital letter A grave, |
| 78 | * U+0181 - Á -- latin capital letter A with acute |
| 79 | * U+0182 - Â -- latin capital letter A with circumflex |
| 80 | * U+0183 - Ã -- latin capital letter A with tilde |
| 81 | * U+0184 - Ä -- latin capital letter A with diaeresis |
| 82 | * U+0185 - Å -- latin capital letter A with ring above = latin capital letter A ring |
| 83 | * U+0186 - Æ -- latin capital letter AE = latin capital ligature AE |
| 84 | * U+0187 - Ç -- latin capital letter C with cedilla |
| 85 | * U+0188 - È -- latin capital letter E with grave |
| 86 | * U+0189 - É -- latin capital letter E with acute |
| 87 | * U+018A - Ê -- latin capital letter E with circumflex |
| 88 | * U+018B - Ë -- latin capital letter E with diaeresis |
| 89 | * U+018C - Ì -- latin capital letter I with grave |
| 90 | * U+018D - Í -- latin capital letter I with acute |
| 91 | * U+018E - Î -- latin capital letter I with circumflex |
| 92 | * U+018F - Ï -- latin capital letter I with diaeresis |
| 93 | * U+0190 - Ð -- latin capital letter ETH |
| 94 | * U+0191 - Ñ -- latin capital letter N with tilde |
| 95 | * U+0192 - Ò -- latin capital letter O with grave |
| 96 | * U+0193 - Ó -- latin capital letter O with acute |
| 97 | * U+0194 - Ô -- latin capital letter O with circumflex |
| 98 | * U+0195 - Õ -- latin capital letter O with tilde |
| 99 | * U+0196 - Ö -- latin capital letter O with diaeresis |
| 100 | * U+0197 - × -- multiplication sign |
| 101 | * U+0198 - Ø -- latin capital letter O with stroke = latin capital letter O slash |
| 102 | * U+0199 - Ù -- latin capital letter U with grave |
| 103 | * U+019A - Ú -- latin capital letter U with acute |
| 104 | * U+019B - Û -- latin capital letter U with circumflex |
| 105 | * U+019C - Ü -- latin capital letter U with diaeresis |
| 106 | * U+019D - Ý -- latin capital letter Y with acute |
| 107 | * U+019E - Þ -- latin capital letter THORN |
| 108 | * U+019F - ß -- latin small letter sharp s = ess-zed |
| 109 | * U+01A0 - à -- latin small letter a with grave = latin small letter a grave |
| 110 | * U+01A1 - á -- latin small letter a with acute |
| 111 | * U+01A2 - â -- latin small letter a with circumflex |
| 112 | * U+01A3 - ã -- latin small letter a with tilde |
| 113 | * U+01A4 - ä -- latin small letter a with diaeresis |
| 114 | * U+01A5 - å -- latin small letter a with ring above = latin small letter a ring |
| 115 | * U+01A6 - æ -- latin small letter ae = latin small ligature ae |
| 116 | * U+01A7 - ç -- latin small letter c with cedilla |
| 117 | * U+01A8 - è -- latin small letter e with grave |
| 118 | * U+01A9 - é -- latin small letter e with acute |
| 119 | * U+01AA - ê -- latin small letter e with circumflex |
| 120 | * U+01AB - ë -- latin small letter e with diaeresis |
| 121 | * U+01AC - ì -- latin small letter i with grave |
| 122 | * U+01AD - í -- latin small letter i with acute |
| 123 | * U+01AE - î -- latin small letter i with circumflex |
| 124 | * U+01AF - ï -- latin small letter i with diaeresis |
| 125 | * U+01B0 - ð -- latin small letter eth |
| 126 | * U+01B1 - ñ -- latin small letter n with tilde |
| 127 | * U+01B2 - ò -- latin small letter o with grave |
| 128 | * U+01B3 - ó -- latin small letter o with acute |
| 129 | * U+01B4 - ô -- latin small letter o with circumflex |
| 130 | * U+01B5 - õ -- latin small letter o with tilde |
| 131 | * U+01B6 - ö -- latin small letter o with diaeresis |
| 132 | * U+01B7 - ÷ -- division sign |
| 133 | * U+01B8 - ø -- latin small letter o with stroke = latin small letter o slash, |
| 134 | * U+01B9 - ù -- latin small letter u with grave |
| 135 | * U+01BA - ú -- latin small letter u with acute |
| 136 | * U+01BB - û -- latin small letter u with circumflex |
| 137 | * U+01BC - ü -- latin small letter u with diaeresis |
| 138 | * U+01BD - ý -- latin small letter y with acute |
| 139 | * U+01BE - þ -- latin small letter thorn, |
| 140 | * U+01BF - ÿ -- latin small letter y with diaeresis |
| 141 | * |
| 142 | * 3. Special symbols (HTMLspecial.ent) |
| 143 | * Latin Extended-A |
| 144 | * U+0152 - Œ -- |
| 145 | * U+0153 - œ -- latin small ligature oe |
| 146 | * U+0160 - Š -- latin capital letter S with caron |
| 147 | * U+0161 - š -- latin small letter s with caron |
| 148 | * U+0178 - Ÿ -- latin capital letter Y with diaeresis |
| 149 | * Spacing Modifier Letters |
| 150 | * U+02C6 - ˆ -- modifier letter circumflex accent |
| 151 | * U+02DC - ˜ -- small tilde |
| 152 | * General Punctuation |
| 153 | * U+2002 -   -- en space |
| 154 | * U+2003 -   -- em space |
| 155 | * U+2009 -   -- thin space |
| 156 | * U+200C - ‌ -- zero width non-joiner |
| 157 | * U+200D - ‍ -- zero width joiner |
| 158 | * U+200E - ‎ -- left-to-right mark |
| 159 | * U+200F - ‏ -- right-to-left mark |
| 160 | * U+2013 - – -- en dash |
| 161 | * U+2014 - — -- em dash |
| 162 | * U+2018 - ‘ -- left single quotation mark |
| 163 | * U+2019 - ’ -- right single quotation mark |
| 164 | * U+201A - ‚ -- single low-9 quotation mark |
| 165 | * U+201C - “ -- left double quotation mark |
| 166 | * U+201D - ” -- right double quotation mark |
| 167 | * U+201E - „ -- double low-9 quotation mark |
| 168 | * U+2020 - † -- dagger |
| 169 | * U+2021 - ‡ -- double dagger |
| 170 | * U+2030 - ‰ -- per mille sign |
| 171 | * U+2039 - ‹ -- single left-pointing angle quotation mark |
| 172 | * U+203A - › -- single right-pointing angle quotation mark |
| 173 | * U+20AC - € -- euro sign |
| 174 | * |
| 175 | * 4. Other symbols (HTMLsymbol.ent) |
| 176 | * Latin Extended-B |
| 177 | * U+0192 - ƒ -- latin small f with hook = function = florin |
| 178 | * Greek |
| 179 | * U+0391 - Α -- greek capital letter alpha |
| 180 | * U+0392 - Β -- greek capital letter beta |
| 181 | * U+0393 - Γ -- greek capital letter gamma |
| 182 | * U+0394 - Δ -- greek capital letter delta |
| 183 | * U+0395 - Ε -- greek capital letter epsilon |
| 184 | * U+0396 - Ζ -- greek capital letter zeta |
| 185 | * U+0397 - Η -- greek capital letter eta |
| 186 | * U+0398 - Θ -- greek capital letter theta |
| 187 | * U+0399 - Ι -- greek capital letter iota |
| 188 | * U+039A - Κ -- greek capital letter kappa |
| 189 | * U+039B - Λ -- greek capital letter lambda |
| 190 | * U+039C - Μ -- greek capital letter mu |
| 191 | * U+039D - Ν -- greek capital letter nu |
| 192 | * U+039E - Ξ -- greek capital letter xi |
| 193 | * U+039F - Ο -- greek capital letter omicron |
| 194 | * U+03A0 - Π -- greek capital letter pi |
| 195 | * U+03A1 - Ρ -- greek capital letter rho |
| 196 | * U+03A3 - Σ -- greek capital letter sigma |
| 197 | * U+03A4 - Τ -- greek capital letter tau |
| 198 | * U+03A5 - Υ -- greek capital letter upsilon |
| 199 | * U+03A6 - Φ -- greek capital letter phi |
| 200 | * U+03A7 - Χ -- greek capital letter chi |
| 201 | * U+03A8 - Ψ -- greek capital letter psi |
| 202 | * U+03A9 - Ω -- greek capital letter omega |
| 203 | * U+03B1 - α -- greek small letter alpha |
| 204 | * U+03B2 - β -- greek small letter beta |
| 205 | * U+03B3 - γ -- greek small letter gamma |
| 206 | * U+03B4 - δ -- greek small letter delta |
| 207 | * U+03B5 - ε -- greek small letter epsilon |
| 208 | * U+03B6 - ζ -- greek small letter zeta |
| 209 | * U+03B7 - η -- greek small letter eta |
| 210 | * U+03B8 - θ -- greek small letter theta |
| 211 | * U+03B9 - ι -- greek small letter iota |
| 212 | * U+03BA - κ -- greek small letter kappa |
| 213 | * U+03BB - λ -- greek small letter lambda |
| 214 | * U+03BC - μ -- greek small letter mu |
| 215 | * U+03BD - ν -- greek small letter nu |
| 216 | * U+03BE - ξ -- greek small letter xi |
| 217 | * U+03BF - ο -- greek small letter omicron |
| 218 | * U+03C0 - π -- greek small letter pi |
| 219 | * U+03C1 - ρ -- greek small letter rho |
| 220 | * U+03C2 - ς -- greek small letter final sigma |
| 221 | * U+03C3 - σ -- greek small letter sigma |
| 222 | * U+03C4 - τ -- greek small letter tau |
| 223 | * U+03C5 - υ -- greek small letter upsilon |
| 224 | * U+03C6 - φ -- greek small letter phi |
| 225 | * U+03C7 - χ -- greek small letter chi |
| 226 | * U+03C8 - ψ -- greek small letter psi |
| 227 | * U+03C9 - ω -- greek small letter omega |
| 228 | * U+03D1 - ϑ -- greek small letter theta symbol |
| 229 | * U+03D2 - ϒ -- greek upsilon with hook symbol |
| 230 | * U+03D6 - ϖ -- greek pi symbol |
| 231 | * |
| 232 | * General Punctuation |
| 233 | * U+2022 - • -- bullet = black small circle |
| 234 | * U+2026 - … -- horizontal ellipsis = three dot leader |
| 235 | * U+2032 - ′ -- prime = minutes = feet |
| 236 | * U+2033 - ″ -- double prime = seconds = inches |
| 237 | * U+203E - ‾ -- overline = spacing overscore |
| 238 | * U+2044 - ⁄ -- fraction slash |
| 239 | * |
| 240 | * Letterlike Symbols |
| 241 | * U+2118 - ℘ -- script capital P = power set = Weierstrass p |
| 242 | * U+2111 - ℑ -- blackletter capital I = imaginary part |
| 243 | * U+211C - ℜ -- blackletter capital R = real part symbol |
| 244 | * U+2122 - ™ -- trade mark sign |
| 245 | * U+2135 - ℵ -- alef symbol = first transfinite cardinal |
| 246 | * |
| 247 | * Arrows |
| 248 | * U+2190 - ← -- leftwards arrow |
| 249 | * U+2191 - ↑ -- upwards arrow |
| 250 | * U+2192 - → -- rightwards arrow |
| 251 | * U+2193 - ↓ -- downwards arrow |
| 252 | * U+2194 - ↔ -- left right arrow |
| 253 | * U+21B5 - ↵ -- downwards arrow with corner leftwards = carriage return |
| 254 | * U+21D0 - ⇐ -- leftwards double arrow |
| 255 | * U+21D1 - ⇑ -- upwards double arrow |
| 256 | * U+21D2 - ⇒ -- rightwards double arrow |
| 257 | * U+21D3 - ⇓ -- downwards double arrow |
| 258 | * U+21D4 - ⇔ -- left right double arrow |
| 259 | * |
| 260 | * Mathematical Operators |
| 261 | * U+2200 - ∀ -- for all |
| 262 | * U+2202 - ∂ -- partial differential |
| 263 | * U+2203 - ∃ -- there exists |
| 264 | * U+2205 - ∅ -- empty set = null set = diameter |
| 265 | * U+2207 - ∇ -- nabla = backward difference |
| 266 | * U+2208 - ∈ -- element of |
| 267 | * U+2209 - ∉ -- not an element of |
| 268 | * U+220B - ∋ -- contains as member |
| 269 | * U+220F - ∏ -- n-ary product = product sign |
| 270 | * U+2211 - ∑ -- n-ary sumation |
| 271 | * U+2212 - − -- minus sign |
| 272 | * U+2217 - ∗ -- asterisk operator |
| 273 | * U+221A - √ -- square root = radical sign |
| 274 | * U+221D - ∝ -- proportional to |
| 275 | * U+221E - ∞ -- infinity |
| 276 | * U+2220 - ∠ -- angle |
| 277 | * U+2227 - ∧ -- logical and = wedge |
| 278 | * U+2228 - ∨ -- logical or = vee |
| 279 | * U+2229 - ∩ -- intersection = cap |
| 280 | * U+222A - ∪ -- union = cup |
| 281 | * U+222B - ∫ -- integral |
| 282 | * U+2234 - ∴ -- therefore |
| 283 | * U+223C - ∼ -- tilde operator = varies with = similar to |
| 284 | * U+2245 - ≅ -- approximately equal to |
| 285 | * U+2248 - ≈ -- almost equal to = asymptotic to |
| 286 | * U+2260 - ≠ -- not equal to |
| 287 | * U+2261 - ≡ -- identical to |
| 288 | * U+2264 - ≤ -- less-than or equal to |
| 289 | * U+2265 - ≥ -- greater-than or equal to |
| 290 | * U+2282 - ⊂ -- subset of |
| 291 | * U+2283 - ⊃ -- superset of |
| 292 | * U+2284 - ⊄ -- not a subset of |
| 293 | * U+2286 - ⊆ -- subset of or equal to |
| 294 | * U+2287 - ⊇ -- superset of or equal to |
| 295 | * U+2295 - ⊕ -- circled plus = direct sum |
| 296 | * U+2297 - ⊗ -- circled times = vector product |
| 297 | * U+22A5 - ⊥ -- up tack = orthogonal to = perpendicular |
| 298 | * U+22C5 - ⋅ -- dot operator |
| 299 | * |
| 300 | * Miscellaneous Technical |
| 301 | * U+2308 - ⌈ -- left ceiling = apl upstile |
| 302 | * U+2309 - ⌉ -- right ceiling |
| 303 | * U+230A - ⌊ -- left floor = apl downstile |
| 304 | * U+230B - ⌋ -- right floor |
| 305 | * U+2329 - ⟨ -- left-pointing angle bracket = bra |
| 306 | * U+232A - ⟩ -- right-pointing angle bracket = ket |
| 307 | * |
| 308 | * Geometric Shapes |
| 309 | * U+25CA - ◊ -- lozenge |
| 310 | * |
| 311 | * Miscellaneous Symbols |
| 312 | * U+2660 - ♠ -- black spade suit |
| 313 | * U+2663 - ♣ -- black club suit = shamrock |
| 314 | * U+2665 - ♥ -- black heart suit = valentine |
| 315 | * U+2666 - ♦ -- black diamond suit |
| 316 | * </pre> |
| 317 | * |
| 318 | * @copyright © 2004-2006 The SquirrelMail Project Team |
| 319 | * @license http://opensource.org/licenses/gpl-license.php GNU Public License |
| 320 | * @version $Id$ |
| 321 | * @package squirrelmail |
| 322 | * @subpackage strings |
| 323 | */ |