PageRenderTime 55ms CodeModel.GetById 26ms RepoModel.GetById 1ms app.codeStats 0ms

/reporting/includes/html_entity_decode_php4.php

https://bitbucket.org/meerdevelopersoffice/bolivia
PHP | 343 lines | 273 code | 4 blank | 66 comment | 1 complexity | e1a42f9c6b2d195d2090ce582319dc2c MD5 | raw file
Possible License(s): Apache-2.0, GPL-3.0, LGPL-3.0
  1. <?php
  2. //============================================================+
  3. // File name : html_entity_decode_php4.php
  4. // Begin : 2006-06-22
  5. // Last Update : 2008-04-01
  6. // Author : Nicola Asuni
  7. // Version : 1.0.000
  8. // License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
  9. // ----------------------------------------------------------------------------
  10. // Copyright (C) 2002-2008 Nicola Asuni - Tecnick.com S.r.l.
  11. //
  12. // This program is free software: you can redistribute it and/or modify
  13. // it under the terms of the GNU Lesser General Public License as published by
  14. // the Free Software Foundation, either version 2.1 of the License, or
  15. // (at your option) any later version.
  16. //
  17. // This program is distributed in the hope that it will be useful,
  18. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  20. // GNU Lesser General Public License for more details.
  21. //
  22. // You should have received a copy of the GNU Lesser General Public License
  23. // along with this program. If not, see <http://www.gnu.org/licenses/>.
  24. //
  25. // See LICENSE.TXT file for more information.
  26. // ----------------------------------------------------------------------------
  27. //
  28. //
  29. // Description : This is a PHP4 function that redefine the
  30. // standard html_entity_decode function to support
  31. // UTF-8 encoding.
  32. //
  33. //
  34. // Author: Nicola Asuni
  35. //
  36. // (c) Copyright:
  37. // Nicola Asuni
  38. // Tecnick.com S.r.l.
  39. // Via della Pace, 11
  40. // 09044 Quartucciu (CA)
  41. // ITALY
  42. // www.tecnick.com
  43. // info@tecnick.com
  44. //============================================================+
  45. /**
  46. * This is a PHP4 function that redefine the standard
  47. * html_entity_decode function to support UTF-8 encoding.
  48. * @package com.tecnick.tcpdf
  49. * @author Nicola Asuni
  50. * @copyright 2004-2008 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
  51. * @link http://www.tcpdf.org
  52. * @license http://www.gnu.org/copyleft/lesser.html LGPL
  53. */
  54. /**
  55. * Returns the UTF-8 string corresponding to unicode value.
  56. * @param $num unicode value to convert.
  57. * @return string converted
  58. */
  59. function code_to_utf8($num) {
  60. if ($num <= 0x7F) {
  61. return chr($num);
  62. } elseif ($num <= 0x7FF) {
  63. return chr(($num >> 0x06) + 0xC0).chr(($num & 0x3F) + 128);
  64. } elseif ($num <= 0xFFFF) {
  65. return chr(($num >> 0x0C) + 0xE0).chr((($num >> 0x06) & 0x3F) + 0x80).chr(($num & 0x3F) + 0x80);
  66. } elseif ($num <= 0x1FFFFF) {
  67. return chr(($num >> 0x12) + 0xF0).chr((($num >> 0x0C) & 0x3F) + 0x80).chr((($num >> 0x06) & 0x3F) + 0x80).chr(($num & 0x3F) + 0x80);
  68. }
  69. return ' '; // default value
  70. }
  71. /**
  72. * Reverse function for htmlentities.
  73. * Convert entities in UTF-8.
  74. * @param $text_to_convert Text to convert.
  75. * @return string converted
  76. */
  77. function html_entity_decode_php4($text_to_convert) {
  78. $htmlentities_table = array (
  79. "&Aacute;" => "".chr(195).chr(129)."",
  80. "&aacute;" => "".chr(195).chr(161)."",
  81. "&Acirc;" => "".chr(195).chr(130)."",
  82. "&acirc;" => "".chr(195).chr(162)."",
  83. "&acute;" => "".chr(194).chr(180)."",
  84. "&AElig;" => "".chr(195).chr(134)."",
  85. "&aelig;" => "".chr(195).chr(166)."",
  86. "&Agrave;" => "".chr(195).chr(128)."",
  87. "&agrave;" => "".chr(195).chr(160)."",
  88. "&alefsym;" => "".chr(226).chr(132).chr(181)."",
  89. "&Alpha;" => "".chr(206).chr(145)."",
  90. "&alpha;" => "".chr(206).chr(177)."",
  91. "&amp;" => "".chr(38)."",
  92. "&and;" => "".chr(226).chr(136).chr(167)."",
  93. "&ang;" => "".chr(226).chr(136).chr(160)."",
  94. "&Aring;" => "".chr(195).chr(133)."",
  95. "&aring;" => "".chr(195).chr(165)."",
  96. "&asymp;" => "".chr(226).chr(137).chr(136)."",
  97. "&Atilde;" => "".chr(195).chr(131)."",
  98. "&atilde;" => "".chr(195).chr(163)."",
  99. "&Auml;" => "".chr(195).chr(132)."",
  100. "&auml;" => "".chr(195).chr(164)."",
  101. "&bdquo;" => "".chr(226).chr(128).chr(158)."",
  102. "&Beta;" => "".chr(206).chr(146)."",
  103. "&beta;" => "".chr(206).chr(178)."",
  104. "&brvbar;" => "".chr(194).chr(166)."",
  105. "&bull;" => "".chr(226).chr(128).chr(162)."",
  106. "&cap;" => "".chr(226).chr(136).chr(169)."",
  107. "&Ccedil;" => "".chr(195).chr(135)."",
  108. "&ccedil;" => "".chr(195).chr(167)."",
  109. "&cedil;" => "".chr(194).chr(184)."",
  110. "&cent;" => "".chr(194).chr(162)."",
  111. "&Chi;" => "".chr(206).chr(167)."",
  112. "&chi;" => "".chr(207).chr(135)."",
  113. "&circ;" => "".chr(203).chr(134)."",
  114. "&clubs;" => "".chr(226).chr(153).chr(163)."",
  115. "&cong;" => "".chr(226).chr(137).chr(133)."",
  116. "&copy;" => "".chr(194).chr(169)."",
  117. "&crarr;" => "".chr(226).chr(134).chr(181)."",
  118. "&cup;" => "".chr(226).chr(136).chr(170)."",
  119. "&curren;" => "".chr(194).chr(164)."",
  120. "&dagger;" => "".chr(226).chr(128).chr(160)."",
  121. "&Dagger;" => "".chr(226).chr(128).chr(161)."",
  122. "&darr;" => "".chr(226).chr(134).chr(147)."",
  123. "&dArr;" => "".chr(226).chr(135).chr(147)."",
  124. "&deg;" => "".chr(194).chr(176)."",
  125. "&Delta;" => "".chr(206).chr(148)."",
  126. "&delta;" => "".chr(206).chr(180)."",
  127. "&diams;" => "".chr(226).chr(153).chr(166)."",
  128. "&divide;" => "".chr(195).chr(183)."",
  129. "&Eacute;" => "".chr(195).chr(137)."",
  130. "&eacute;" => "".chr(195).chr(169)."",
  131. "&Ecirc;" => "".chr(195).chr(138)."",
  132. "&ecirc;" => "".chr(195).chr(170)."",
  133. "&Egrave;" => "".chr(195).chr(136)."",
  134. "&egrave;" => "".chr(195).chr(168)."",
  135. "&empty;" => "".chr(226).chr(136).chr(133)."",
  136. "&emsp;" => "".chr(226).chr(128).chr(131)."",
  137. "&ensp;" => "".chr(226).chr(128).chr(130)."",
  138. "&Epsilon;" => "".chr(206).chr(149)."",
  139. "&epsilon;" => "".chr(206).chr(181)."",
  140. "&equiv;" => "".chr(226).chr(137).chr(161)."",
  141. "&Eta;" => "".chr(206).chr(151)."",
  142. "&eta;" => "".chr(206).chr(183)."",
  143. "&ETH;" => "".chr(195).chr(144)."",
  144. "&eth;" => "".chr(195).chr(176)."",
  145. "&Euml;" => "".chr(195).chr(139)."",
  146. "&euml;" => "".chr(195).chr(171)."",
  147. "&euro;" => "".chr(226).chr(130).chr(172)."",
  148. "&exist;" => "".chr(226).chr(136).chr(131)."",
  149. "&fnof;" => "".chr(198).chr(146)."",
  150. "&forall;" => "".chr(226).chr(136).chr(128)."",
  151. "&frac12;" => "".chr(194).chr(189)."",
  152. "&frac14;" => "".chr(194).chr(188)."",
  153. "&frac34;" => "".chr(194).chr(190)."",
  154. "&frasl;" => "".chr(226).chr(129).chr(132)."",
  155. "&Gamma;" => "".chr(206).chr(147)."",
  156. "&gamma;" => "".chr(206).chr(179)."",
  157. "&ge;" => "".chr(226).chr(137).chr(165)."",
  158. "&harr;" => "".chr(226).chr(134).chr(148)."",
  159. "&hArr;" => "".chr(226).chr(135).chr(148)."",
  160. "&hearts;" => "".chr(226).chr(153).chr(165)."",
  161. "&hellip;" => "".chr(226).chr(128).chr(166)."",
  162. "&Iacute;" => "".chr(195).chr(141)."",
  163. "&iacute;" => "".chr(195).chr(173)."",
  164. "&Icirc;" => "".chr(195).chr(142)."",
  165. "&icirc;" => "".chr(195).chr(174)."",
  166. "&iexcl;" => "".chr(194).chr(161)."",
  167. "&Igrave;" => "".chr(195).chr(140)."",
  168. "&igrave;" => "".chr(195).chr(172)."",
  169. "&image;" => "".chr(226).chr(132).chr(145)."",
  170. "&infin;" => "".chr(226).chr(136).chr(158)."",
  171. "&int;" => "".chr(226).chr(136).chr(171)."",
  172. "&Iota;" => "".chr(206).chr(153)."",
  173. "&iota;" => "".chr(206).chr(185)."",
  174. "&iquest;" => "".chr(194).chr(191)."",
  175. "&isin;" => "".chr(226).chr(136).chr(136)."",
  176. "&Iuml;" => "".chr(195).chr(143)."",
  177. "&iuml;" => "".chr(195).chr(175)."",
  178. "&Kappa;" => "".chr(206).chr(154)."",
  179. "&kappa;" => "".chr(206).chr(186)."",
  180. "&Lambda;" => "".chr(206).chr(155)."",
  181. "&lambda;" => "".chr(206).chr(187)."",
  182. "&lang;" => "".chr(226).chr(140).chr(169)."",
  183. "&laquo;" => "".chr(194).chr(171)."",
  184. "&larr;" => "".chr(226).chr(134).chr(144)."",
  185. "&lArr;" => "".chr(226).chr(135).chr(144)."",
  186. "&lceil;" => "".chr(226).chr(140).chr(136)."",
  187. "&ldquo;" => "".chr(226).chr(128).chr(156)."",
  188. "&le;" => "".chr(226).chr(137).chr(164)."",
  189. "&lfloor;" => "".chr(226).chr(140).chr(138)."",
  190. "&lowast;" => "".chr(226).chr(136).chr(151)."",
  191. "&loz;" => "".chr(226).chr(151).chr(138)."",
  192. "&lrm;" => "".chr(226).chr(128).chr(142)."",
  193. "&lsaquo;" => "".chr(226).chr(128).chr(185)."",
  194. "&lsquo;" => "".chr(226).chr(128).chr(152)."",
  195. "&macr;" => "".chr(194).chr(175)."",
  196. "&mdash;" => "".chr(226).chr(128).chr(148)."",
  197. "&micro;" => "".chr(194).chr(181)."",
  198. "&middot;" => "".chr(194).chr(183)."",
  199. "&minus;" => "".chr(226).chr(136).chr(146)."",
  200. "&Mu;" => "".chr(206).chr(156)."",
  201. "&mu;" => "".chr(206).chr(188)."",
  202. "&nabla;" => "".chr(226).chr(136).chr(135)."",
  203. "&nbsp;" => "".chr(194).chr(160)."",
  204. "&ndash;" => "".chr(226).chr(128).chr(147)."",
  205. "&ne;" => "".chr(226).chr(137).chr(160)."",
  206. "&ni;" => "".chr(226).chr(136).chr(139)."",
  207. "&not;" => "".chr(194).chr(172)."",
  208. "&notin;" => "".chr(226).chr(136).chr(137)."",
  209. "&nsub;" => "".chr(226).chr(138).chr(132)."",
  210. "&Ntilde;" => "".chr(195).chr(145)."",
  211. "&ntilde;" => "".chr(195).chr(177)."",
  212. "&Nu;" => "".chr(206).chr(157)."",
  213. "&nu;" => "".chr(206).chr(189)."",
  214. "&Oacute;" => "".chr(195).chr(147)."",
  215. "&oacute;" => "".chr(195).chr(179)."",
  216. "&Ocirc;" => "".chr(195).chr(148)."",
  217. "&ocirc;" => "".chr(195).chr(180)."",
  218. "&OElig;" => "".chr(197).chr(146)."",
  219. "&oelig;" => "".chr(197).chr(147)."",
  220. "&Ograve;" => "".chr(195).chr(146)."",
  221. "&ograve;" => "".chr(195).chr(178)."",
  222. "&oline;" => "".chr(226).chr(128).chr(190)."",
  223. "&Omega;" => "".chr(206).chr(169)."",
  224. "&omega;" => "".chr(207).chr(137)."",
  225. "&Omicron;" => "".chr(206).chr(159)."",
  226. "&omicron;" => "".chr(206).chr(191)."",
  227. "&oplus;" => "".chr(226).chr(138).chr(149)."",
  228. "&or;" => "".chr(226).chr(136).chr(168)."",
  229. "&ordf;" => "".chr(194).chr(170)."",
  230. "&ordm;" => "".chr(194).chr(186)."",
  231. "&Oslash;" => "".chr(195).chr(152)."",
  232. "&oslash;" => "".chr(195).chr(184)."",
  233. "&Otilde;" => "".chr(195).chr(149)."",
  234. "&otilde;" => "".chr(195).chr(181)."",
  235. "&otimes;" => "".chr(226).chr(138).chr(151)."",
  236. "&Ouml;" => "".chr(195).chr(150)."",
  237. "&ouml;" => "".chr(195).chr(182)."",
  238. "&para;" => "".chr(194).chr(182)."",
  239. "&part;" => "".chr(226).chr(136).chr(130)."",
  240. "&permil;" => "".chr(226).chr(128).chr(176)."",
  241. "&perp;" => "".chr(226).chr(138).chr(165)."",
  242. "&Phi;" => "".chr(206).chr(166)."",
  243. "&phi;" => "".chr(207).chr(134)."",
  244. "&Pi;" => "".chr(206).chr(160)."",
  245. "&pi;" => "".chr(207).chr(128)."",
  246. "&piv;" => "".chr(207).chr(150)."",
  247. "&plusmn;" => "".chr(194).chr(177)."",
  248. "&pound;" => "".chr(194).chr(163)."",
  249. "&prime;" => "".chr(226).chr(128).chr(178)."",
  250. "&Prime;" => "".chr(226).chr(128).chr(179)."",
  251. "&prod;" => "".chr(226).chr(136).chr(143)."",
  252. "&prop;" => "".chr(226).chr(136).chr(157)."",
  253. "&Psi;" => "".chr(206).chr(168)."",
  254. "&psi;" => "".chr(207).chr(136)."",
  255. "&radic;" => "".chr(226).chr(136).chr(154)."",
  256. "&rang;" => "".chr(226).chr(140).chr(170)."",
  257. "&raquo;" => "".chr(194).chr(187)."",
  258. "&rarr;" => "".chr(226).chr(134).chr(146)."",
  259. "&rArr;" => "".chr(226).chr(135).chr(146)."",
  260. "&rceil;" => "".chr(226).chr(140).chr(137)."",
  261. "&rdquo;" => "".chr(226).chr(128).chr(157)."",
  262. "&real;" => "".chr(226).chr(132).chr(156)."",
  263. "&reg;" => "".chr(194).chr(174)."",
  264. "&rfloor;" => "".chr(226).chr(140).chr(139)."",
  265. "&Rho;" => "".chr(206).chr(161)."",
  266. "&rho;" => "".chr(207).chr(129)."",
  267. "&rlm;" => "".chr(226).chr(128).chr(143)."",
  268. "&rsaquo;" => "".chr(226).chr(128).chr(186)."",
  269. "&rsquo;" => "".chr(226).chr(128).chr(153)."",
  270. "&sbquo;" => "".chr(226).chr(128).chr(154)."",
  271. "&Scaron;" => "".chr(197).chr(160)."",
  272. "&scaron;" => "".chr(197).chr(161)."",
  273. "&sdot;" => "".chr(226).chr(139).chr(133)."",
  274. "&sect;" => "".chr(194).chr(167)."",
  275. "&shy;" => "".chr(194).chr(173)."",
  276. "&Sigma;" => "".chr(206).chr(163)."",
  277. "&sigma;" => "".chr(207).chr(131)."",
  278. "&sigmaf;" => "".chr(207).chr(130)."",
  279. "&sim;" => "".chr(226).chr(136).chr(188)."",
  280. "&spades;" => "".chr(226).chr(153).chr(160)."",
  281. "&sub;" => "".chr(226).chr(138).chr(130)."",
  282. "&sube;" => "".chr(226).chr(138).chr(134)."",
  283. "&sum;" => "".chr(226).chr(136).chr(145)."",
  284. "&sup1;" => "".chr(194).chr(185)."",
  285. "&sup2;" => "".chr(194).chr(178)."",
  286. "&sup3;" => "".chr(194).chr(179)."",
  287. "&sup;" => "".chr(226).chr(138).chr(131)."",
  288. "&supe;" => "".chr(226).chr(138).chr(135)."",
  289. "&szlig;" => "".chr(195).chr(159)."",
  290. "&Tau;" => "".chr(206).chr(164)."",
  291. "&tau;" => "".chr(207).chr(132)."",
  292. "&there4;" => "".chr(226).chr(136).chr(180)."",
  293. "&Theta;" => "".chr(206).chr(152)."",
  294. "&theta;" => "".chr(206).chr(184)."",
  295. "&thetasym;" => "".chr(207).chr(145)."",
  296. "&thinsp;" => "".chr(226).chr(128).chr(137)."",
  297. "&THORN;" => "".chr(195).chr(158)."",
  298. "&thorn;" => "".chr(195).chr(190)."",
  299. "&tilde;" => "".chr(203).chr(156)."",
  300. "&times;" => "".chr(195).chr(151)."",
  301. "&trade;" => "".chr(226).chr(132).chr(162)."",
  302. "&Uacute;" => "".chr(195).chr(154)."",
  303. "&uacute;" => "".chr(195).chr(186)."",
  304. "&uarr;" => "".chr(226).chr(134).chr(145)."",
  305. "&uArr;" => "".chr(226).chr(135).chr(145)."",
  306. "&Ucirc;" => "".chr(195).chr(155)."",
  307. "&ucirc;" => "".chr(195).chr(187)."",
  308. "&Ugrave;" => "".chr(195).chr(153)."",
  309. "&ugrave;" => "".chr(195).chr(185)."",
  310. "&uml;" => "".chr(194).chr(168)."",
  311. "&upsih;" => "".chr(207).chr(146)."",
  312. "&Upsilon;" => "".chr(206).chr(165)."",
  313. "&upsilon;" => "".chr(207).chr(133)."",
  314. "&Uuml;" => "".chr(195).chr(156)."",
  315. "&uuml;" => "".chr(195).chr(188)."",
  316. "&weierp;" => "".chr(226).chr(132).chr(152)."",
  317. "&Xi;" => "".chr(206).chr(158)."",
  318. "&xi;" => "".chr(206).chr(190)."",
  319. "&Yacute;" => "".chr(195).chr(157)."",
  320. "&yacute;" => "".chr(195).chr(189)."",
  321. "&yen;" => "".chr(194).chr(165)."",
  322. "&yuml;" => "".chr(195).chr(191)."",
  323. "&Yuml;" => "".chr(197).chr(184)."",
  324. "&Zeta;" => "".chr(206).chr(150)."",
  325. "&zeta;" => "".chr(206).chr(182)."",
  326. "&zwj;" => "".chr(226).chr(128).chr(141)."",
  327. "&zwnj;" => "".chr(226).chr(128).chr(140)."",
  328. "&gt;" => ">",
  329. "&lt;" => "<"
  330. );
  331. $return_text = strtr($text_to_convert, $htmlentities_table);
  332. $return_text = preg_replace('~&#x([0-9a-f]+);~ei', 'code_to_utf8(hexdec("\\1"))', $return_text);
  333. $return_text = preg_replace('~&#([0-9]+);~e', 'code_to_utf8(\\1)', $return_text);
  334. return $return_text;
  335. }
  336. //============================================================+
  337. // END OF FILE
  338. //============================================================+
  339. ?>