2 //============================================================+
3 // File name : html_entity_decode_php4.php
5 // Last Update : 2006-06-22
6 // Author : Nicola Asuni
8 // License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
10 // Description : This is a PHP4 function that redefine the
11 // standard html_entity_decode function to support
14 //============================================================+
18 * @package com.tecnick.tcpdf
23 * Returns the UTF-8 string corresponding to unicode value.
24 * @param $num unicode value to convert.
25 * @return string converted
27 function code_to_utf8($num) {
30 } elseif ($num <= 0x7FF) {
31 return chr(($num >> 0x06) +
0xC0).chr(($num & 0x3F) +
128);
32 } elseif ($num <= 0xFFFF) {
33 return chr(($num >> 0x0C) +
0xE0).chr((($num >> 0x06) & 0x3F) +
0x80).chr(($num & 0x3F) +
0x80);
34 } elseif ($num <= 0x1FFFFF) {
35 return chr(($num >> 0x12) +
0xF0).chr((($num >> 0x0C) & 0x3F) +
0x80).chr((($num >> 0x06) & 0x3F) +
0x80).chr(($num & 0x3F) +
0x80);
37 return ' '; // default value
41 * Reverse function for htmlentities.
42 * Convert entities in UTF-8.
43 * @param $text_to_convert Text to convert.
44 * @return string converted
46 function html_entity_decode_php4($text_to_convert) {
47 $htmlentities_table = array (
48 "Á" => "".chr(195).chr(129)."",
49 "á" => "".chr(195).chr(161)."",
50 "Â" => "".chr(195).chr(130)."",
51 "â" => "".chr(195).chr(162)."",
52 "´" => "".chr(194).chr(180)."",
53 "Æ" => "".chr(195).chr(134)."",
54 "æ" => "".chr(195).chr(166)."",
55 "À" => "".chr(195).chr(128)."",
56 "à" => "".chr(195).chr(160)."",
57 "ℵ" => "".chr(226).chr(132).chr(181)."",
58 "Α" => "".chr(206).chr(145)."",
59 "α" => "".chr(206).chr(177)."",
60 "&" => "".chr(38)."",
61 "∧" => "".chr(226).chr(136).chr(167)."",
62 "∠" => "".chr(226).chr(136).chr(160)."",
63 "Å" => "".chr(195).chr(133)."",
64 "å" => "".chr(195).chr(165)."",
65 "≈" => "".chr(226).chr(137).chr(136)."",
66 "Ã" => "".chr(195).chr(131)."",
67 "ã" => "".chr(195).chr(163)."",
68 "Ä" => "".chr(195).chr(132)."",
69 "ä" => "".chr(195).chr(164)."",
70 "„" => "".chr(226).chr(128).chr(158)."",
71 "Β" => "".chr(206).chr(146)."",
72 "β" => "".chr(206).chr(178)."",
73 "¦" => "".chr(194).chr(166)."",
74 "•" => "".chr(226).chr(128).chr(162)."",
75 "∩" => "".chr(226).chr(136).chr(169)."",
76 "Ç" => "".chr(195).chr(135)."",
77 "ç" => "".chr(195).chr(167)."",
78 "¸" => "".chr(194).chr(184)."",
79 "¢" => "".chr(194).chr(162)."",
80 "Χ" => "".chr(206).chr(167)."",
81 "χ" => "".chr(207).chr(135)."",
82 "ˆ" => "".chr(203).chr(134)."",
83 "♣" => "".chr(226).chr(153).chr(163)."",
84 "≅" => "".chr(226).chr(137).chr(133)."",
85 "©" => "".chr(194).chr(169)."",
86 "↵" => "".chr(226).chr(134).chr(181)."",
87 "∪" => "".chr(226).chr(136).chr(170)."",
88 "¤" => "".chr(194).chr(164)."",
89 "†" => "".chr(226).chr(128).chr(160)."",
90 "‡" => "".chr(226).chr(128).chr(161)."",
91 "↓" => "".chr(226).chr(134).chr(147)."",
92 "⇓" => "".chr(226).chr(135).chr(147)."",
93 "°" => "".chr(194).chr(176)."",
94 "Δ" => "".chr(206).chr(148)."",
95 "δ" => "".chr(206).chr(180)."",
96 "♦" => "".chr(226).chr(153).chr(166)."",
97 "÷" => "".chr(195).chr(183)."",
98 "É" => "".chr(195).chr(137)."",
99 "é" => "".chr(195).chr(169)."",
100 "Ê" => "".chr(195).chr(138)."",
101 "ê" => "".chr(195).chr(170)."",
102 "È" => "".chr(195).chr(136)."",
103 "è" => "".chr(195).chr(168)."",
104 "∅" => "".chr(226).chr(136).chr(133)."",
105 " " => "".chr(226).chr(128).chr(131)."",
106 " " => "".chr(226).chr(128).chr(130)."",
107 "Ε" => "".chr(206).chr(149)."",
108 "ε" => "".chr(206).chr(181)."",
109 "≡" => "".chr(226).chr(137).chr(161)."",
110 "Η" => "".chr(206).chr(151)."",
111 "η" => "".chr(206).chr(183)."",
112 "Ð" => "".chr(195).chr(144)."",
113 "ð" => "".chr(195).chr(176)."",
114 "Ë" => "".chr(195).chr(139)."",
115 "ë" => "".chr(195).chr(171)."",
116 "€" => "".chr(226).chr(130).chr(172)."",
117 "∃" => "".chr(226).chr(136).chr(131)."",
118 "ƒ" => "".chr(198).chr(146)."",
119 "∀" => "".chr(226).chr(136).chr(128)."",
120 "½" => "".chr(194).chr(189)."",
121 "¼" => "".chr(194).chr(188)."",
122 "¾" => "".chr(194).chr(190)."",
123 "⁄" => "".chr(226).chr(129).chr(132)."",
124 "Γ" => "".chr(206).chr(147)."",
125 "γ" => "".chr(206).chr(179)."",
126 "≥" => "".chr(226).chr(137).chr(165)."",
127 "↔" => "".chr(226).chr(134).chr(148)."",
128 "⇔" => "".chr(226).chr(135).chr(148)."",
129 "♥" => "".chr(226).chr(153).chr(165)."",
130 "…" => "".chr(226).chr(128).chr(166)."",
131 "Í" => "".chr(195).chr(141)."",
132 "í" => "".chr(195).chr(173)."",
133 "Î" => "".chr(195).chr(142)."",
134 "î" => "".chr(195).chr(174)."",
135 "¡" => "".chr(194).chr(161)."",
136 "Ì" => "".chr(195).chr(140)."",
137 "ì" => "".chr(195).chr(172)."",
138 "ℑ" => "".chr(226).chr(132).chr(145)."",
139 "∞" => "".chr(226).chr(136).chr(158)."",
140 "∫" => "".chr(226).chr(136).chr(171)."",
141 "Ι" => "".chr(206).chr(153)."",
142 "ι" => "".chr(206).chr(185)."",
143 "¿" => "".chr(194).chr(191)."",
144 "∈" => "".chr(226).chr(136).chr(136)."",
145 "Ï" => "".chr(195).chr(143)."",
146 "ï" => "".chr(195).chr(175)."",
147 "Κ" => "".chr(206).chr(154)."",
148 "κ" => "".chr(206).chr(186)."",
149 "Λ" => "".chr(206).chr(155)."",
150 "λ" => "".chr(206).chr(187)."",
151 "⟨" => "".chr(226).chr(140).chr(169)."",
152 "«" => "".chr(194).chr(171)."",
153 "←" => "".chr(226).chr(134).chr(144)."",
154 "⇐" => "".chr(226).chr(135).chr(144)."",
155 "⌈" => "".chr(226).chr(140).chr(136)."",
156 "“" => "".chr(226).chr(128).chr(156)."",
157 "≤" => "".chr(226).chr(137).chr(164)."",
158 "⌊" => "".chr(226).chr(140).chr(138)."",
159 "∗" => "".chr(226).chr(136).chr(151)."",
160 "◊" => "".chr(226).chr(151).chr(138)."",
161 "‎" => "".chr(226).chr(128).chr(142)."",
162 "‹" => "".chr(226).chr(128).chr(185)."",
163 "‘" => "".chr(226).chr(128).chr(152)."",
164 "¯" => "".chr(194).chr(175)."",
165 "—" => "".chr(226).chr(128).chr(148)."",
166 "µ" => "".chr(194).chr(181)."",
167 "·" => "".chr(194).chr(183)."",
168 "−" => "".chr(226).chr(136).chr(146)."",
169 "Μ" => "".chr(206).chr(156)."",
170 "μ" => "".chr(206).chr(188)."",
171 "∇" => "".chr(226).chr(136).chr(135)."",
172 " " => "".chr(194).chr(160)."",
173 "–" => "".chr(226).chr(128).chr(147)."",
174 "≠" => "".chr(226).chr(137).chr(160)."",
175 "∋" => "".chr(226).chr(136).chr(139)."",
176 "¬" => "".chr(194).chr(172)."",
177 "∉" => "".chr(226).chr(136).chr(137)."",
178 "⊄" => "".chr(226).chr(138).chr(132)."",
179 "Ñ" => "".chr(195).chr(145)."",
180 "ñ" => "".chr(195).chr(177)."",
181 "Ν" => "".chr(206).chr(157)."",
182 "ν" => "".chr(206).chr(189)."",
183 "Ó" => "".chr(195).chr(147)."",
184 "ó" => "".chr(195).chr(179)."",
185 "Ô" => "".chr(195).chr(148)."",
186 "ô" => "".chr(195).chr(180)."",
187 "Œ" => "".chr(197).chr(146)."",
188 "œ" => "".chr(197).chr(147)."",
189 "Ò" => "".chr(195).chr(146)."",
190 "ò" => "".chr(195).chr(178)."",
191 "‾" => "".chr(226).chr(128).chr(190)."",
192 "Ω" => "".chr(206).chr(169)."",
193 "ω" => "".chr(207).chr(137)."",
194 "Ο" => "".chr(206).chr(159)."",
195 "ο" => "".chr(206).chr(191)."",
196 "⊕" => "".chr(226).chr(138).chr(149)."",
197 "∨" => "".chr(226).chr(136).chr(168)."",
198 "ª" => "".chr(194).chr(170)."",
199 "º" => "".chr(194).chr(186)."",
200 "Ø" => "".chr(195).chr(152)."",
201 "ø" => "".chr(195).chr(184)."",
202 "Õ" => "".chr(195).chr(149)."",
203 "õ" => "".chr(195).chr(181)."",
204 "⊗" => "".chr(226).chr(138).chr(151)."",
205 "Ö" => "".chr(195).chr(150)."",
206 "ö" => "".chr(195).chr(182)."",
207 "¶" => "".chr(194).chr(182)."",
208 "∂" => "".chr(226).chr(136).chr(130)."",
209 "‰" => "".chr(226).chr(128).chr(176)."",
210 "⊥" => "".chr(226).chr(138).chr(165)."",
211 "Φ" => "".chr(206).chr(166)."",
212 "φ" => "".chr(207).chr(134)."",
213 "Π" => "".chr(206).chr(160)."",
214 "π" => "".chr(207).chr(128)."",
215 "ϖ" => "".chr(207).chr(150)."",
216 "±" => "".chr(194).chr(177)."",
217 "£" => "".chr(194).chr(163)."",
218 "′" => "".chr(226).chr(128).chr(178)."",
219 "″" => "".chr(226).chr(128).chr(179)."",
220 "∏" => "".chr(226).chr(136).chr(143)."",
221 "∝" => "".chr(226).chr(136).chr(157)."",
222 "Ψ" => "".chr(206).chr(168)."",
223 "ψ" => "".chr(207).chr(136)."",
224 "√" => "".chr(226).chr(136).chr(154)."",
225 "⟩" => "".chr(226).chr(140).chr(170)."",
226 "»" => "".chr(194).chr(187)."",
227 "→" => "".chr(226).chr(134).chr(146)."",
228 "⇒" => "".chr(226).chr(135).chr(146)."",
229 "⌉" => "".chr(226).chr(140).chr(137)."",
230 "”" => "".chr(226).chr(128).chr(157)."",
231 "ℜ" => "".chr(226).chr(132).chr(156)."",
232 "®" => "".chr(194).chr(174)."",
233 "⌋" => "".chr(226).chr(140).chr(139)."",
234 "Ρ" => "".chr(206).chr(161)."",
235 "ρ" => "".chr(207).chr(129)."",
236 "‏" => "".chr(226).chr(128).chr(143)."",
237 "›" => "".chr(226).chr(128).chr(186)."",
238 "’" => "".chr(226).chr(128).chr(153)."",
239 "‚" => "".chr(226).chr(128).chr(154)."",
240 "Š" => "".chr(197).chr(160)."",
241 "š" => "".chr(197).chr(161)."",
242 "⋅" => "".chr(226).chr(139).chr(133)."",
243 "§" => "".chr(194).chr(167)."",
244 "­" => "".chr(194).chr(173)."",
245 "Σ" => "".chr(206).chr(163)."",
246 "σ" => "".chr(207).chr(131)."",
247 "ς" => "".chr(207).chr(130)."",
248 "∼" => "".chr(226).chr(136).chr(188)."",
249 "♠" => "".chr(226).chr(153).chr(160)."",
250 "⊂" => "".chr(226).chr(138).chr(130)."",
251 "⊆" => "".chr(226).chr(138).chr(134)."",
252 "∑" => "".chr(226).chr(136).chr(145)."",
253 "¹" => "".chr(194).chr(185)."",
254 "²" => "".chr(194).chr(178)."",
255 "³" => "".chr(194).chr(179)."",
256 "⊃" => "".chr(226).chr(138).chr(131)."",
257 "⊇" => "".chr(226).chr(138).chr(135)."",
258 "ß" => "".chr(195).chr(159)."",
259 "Τ" => "".chr(206).chr(164)."",
260 "τ" => "".chr(207).chr(132)."",
261 "∴" => "".chr(226).chr(136).chr(180)."",
262 "Θ" => "".chr(206).chr(152)."",
263 "θ" => "".chr(206).chr(184)."",
264 "ϑ" => "".chr(207).chr(145)."",
265 " " => "".chr(226).chr(128).chr(137)."",
266 "Þ" => "".chr(195).chr(158)."",
267 "þ" => "".chr(195).chr(190)."",
268 "˜" => "".chr(203).chr(156)."",
269 "×" => "".chr(195).chr(151)."",
270 "™" => "".chr(226).chr(132).chr(162)."",
271 "Ú" => "".chr(195).chr(154)."",
272 "ú" => "".chr(195).chr(186)."",
273 "↑" => "".chr(226).chr(134).chr(145)."",
274 "⇑" => "".chr(226).chr(135).chr(145)."",
275 "Û" => "".chr(195).chr(155)."",
276 "û" => "".chr(195).chr(187)."",
277 "Ù" => "".chr(195).chr(153)."",
278 "ù" => "".chr(195).chr(185)."",
279 "¨" => "".chr(194).chr(168)."",
280 "ϒ" => "".chr(207).chr(146)."",
281 "Υ" => "".chr(206).chr(165)."",
282 "υ" => "".chr(207).chr(133)."",
283 "Ü" => "".chr(195).chr(156)."",
284 "ü" => "".chr(195).chr(188)."",
285 "℘" => "".chr(226).chr(132).chr(152)."",
286 "Ξ" => "".chr(206).chr(158)."",
287 "ξ" => "".chr(206).chr(190)."",
288 "Ý" => "".chr(195).chr(157)."",
289 "ý" => "".chr(195).chr(189)."",
290 "¥" => "".chr(194).chr(165)."",
291 "ÿ" => "".chr(195).chr(191)."",
292 "Ÿ" => "".chr(197).chr(184)."",
293 "Ζ" => "".chr(206).chr(150)."",
294 "ζ" => "".chr(206).chr(182)."",
295 "‍" => "".chr(226).chr(128).chr(141)."",
296 "‌" => "".chr(226).chr(128).chr(140)."",
300 $return_text = strtr($text_to_convert, $htmlentities_table);
301 $return_text = preg_replace('~&#x([0-9a-f]+);~ei', 'code_to_utf8(hexdec("\\1"))', $return_text);
302 $return_text = preg_replace('~&#([0-9]+);~e', 'code_to_utf8(\\1)', $return_text);
306 //============================================================+
308 //============================================================+