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
//============================================================+