Created
June 12, 2018 09:23
-
-
Save gregzawadzki/b212044ac1ae10dd1d033b7da6b0427b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /* | |
| For CMSMadeSimple CMS Platform | |
| This file is a fix for https://forum.cmsmadesimple.org/viewtopic.php?f=3&t=71067 | |
| Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in lib/html_entity_decode_utf8.php on line 38 | |
| */ | |
| //============================================================+ | |
| // File name : html_entity_decode_php4.php | |
| // Begin : 2006-06-22 | |
| // Last Update : 2006-06-22 | |
| // Author : Nicola Asuni | |
| // Version : 1.0.000 | |
| // License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html) | |
| // | |
| // Description : This is a PHP4 function that redefine the | |
| // standard html_entity_decode function to support | |
| // UTF-8 encoding. | |
| // | |
| //============================================================+ | |
| /** | |
| * TCPDF Class. | |
| * @package com.tecnick.tcpdf | |
| */ | |
| /** | |
| * Returns the UTF-8 string corresponding to unicode value. | |
| * | |
| * @ignore | |
| * @param $num unicode value to convert. | |
| * @return string converted | |
| */ | |
| function code_to_utf8($num) { | |
| if ($num <= 0x7F) { | |
| return chr($num); | |
| } elseif ($num <= 0x7FF) { | |
| return chr(($num >> 0x06) + 0xC0).chr(($num & 0x3F) + 128); | |
| } elseif ($num <= 0xFFFF) { | |
| return chr(($num >> 0x0C) + 0xE0).chr((($num >> 0x06) & 0x3F) + 0x80).chr(($num & 0x3F) + 0x80); | |
| } elseif ($num <= 0x1FFFFF) { | |
| return chr(($num >> 0x12) + 0xF0).chr((($num >> 0x0C) & 0x3F) + 0x80).chr((($num >> 0x06) & 0x3F) + 0x80).chr(($num & 0x3F) + 0x80); | |
| } | |
| return ' '; // default value | |
| } | |
| /** | |
| * Reverse function for htmlentities. | |
| * Convert entities in UTF-8. | |
| * | |
| * @param $text_to_convert Text to convert. | |
| * @return string converted | |
| */ | |
| //function html_entity_decode_php4($text_to_convert) { | |
| function cms_html_entity_decode($text_to_convert) { | |
| $htmlentities_table = array ( | |
| "Á" => "".chr(195).chr(129)."", | |
| "á" => "".chr(195).chr(161)."", | |
| "Â" => "".chr(195).chr(130)."", | |
| "â" => "".chr(195).chr(162)."", | |
| "´" => "".chr(194).chr(180)."", | |
| "Æ" => "".chr(195).chr(134)."", | |
| "æ" => "".chr(195).chr(166)."", | |
| "À" => "".chr(195).chr(128)."", | |
| "à" => "".chr(195).chr(160)."", | |
| "ℵ" => "".chr(226).chr(132).chr(181)."", | |
| "Α" => "".chr(206).chr(145)."", | |
| "α" => "".chr(206).chr(177)."", | |
| "&" => "".chr(38)."", | |
| "∧" => "".chr(226).chr(136).chr(167)."", | |
| "∠" => "".chr(226).chr(136).chr(160)."", | |
| "Å" => "".chr(195).chr(133)."", | |
| "å" => "".chr(195).chr(165)."", | |
| "≈" => "".chr(226).chr(137).chr(136)."", | |
| "Ã" => "".chr(195).chr(131)."", | |
| "ã" => "".chr(195).chr(163)."", | |
| "Ä" => "".chr(195).chr(132)."", | |
| "ä" => "".chr(195).chr(164)."", | |
| "„" => "".chr(226).chr(128).chr(158)."", | |
| "Β" => "".chr(206).chr(146)."", | |
| "β" => "".chr(206).chr(178)."", | |
| "¦" => "".chr(194).chr(166)."", | |
| "•" => "".chr(226).chr(128).chr(162)."", | |
| "∩" => "".chr(226).chr(136).chr(169)."", | |
| "Ç" => "".chr(195).chr(135)."", | |
| "ç" => "".chr(195).chr(167)."", | |
| "¸" => "".chr(194).chr(184)."", | |
| "¢" => "".chr(194).chr(162)."", | |
| "Χ" => "".chr(206).chr(167)."", | |
| "χ" => "".chr(207).chr(135)."", | |
| "ˆ" => "".chr(203).chr(134)."", | |
| "♣" => "".chr(226).chr(153).chr(163)."", | |
| "≅" => "".chr(226).chr(137).chr(133)."", | |
| "©" => "".chr(194).chr(169)."", | |
| "↵" => "".chr(226).chr(134).chr(181)."", | |
| "∪" => "".chr(226).chr(136).chr(170)."", | |
| "¤" => "".chr(194).chr(164)."", | |
| "†" => "".chr(226).chr(128).chr(160)."", | |
| "‡" => "".chr(226).chr(128).chr(161)."", | |
| "↓" => "".chr(226).chr(134).chr(147)."", | |
| "⇓" => "".chr(226).chr(135).chr(147)."", | |
| "°" => "".chr(194).chr(176)."", | |
| "Δ" => "".chr(206).chr(148)."", | |
| "δ" => "".chr(206).chr(180)."", | |
| "♦" => "".chr(226).chr(153).chr(166)."", | |
| "÷" => "".chr(195).chr(183)."", | |
| "É" => "".chr(195).chr(137)."", | |
| "é" => "".chr(195).chr(169)."", | |
| "Ê" => "".chr(195).chr(138)."", | |
| "ê" => "".chr(195).chr(170)."", | |
| "È" => "".chr(195).chr(136)."", | |
| "è" => "".chr(195).chr(168)."", | |
| "∅" => "".chr(226).chr(136).chr(133)."", | |
| " " => "".chr(226).chr(128).chr(131)."", | |
| " " => "".chr(226).chr(128).chr(130)."", | |
| "Ε" => "".chr(206).chr(149)."", | |
| "ε" => "".chr(206).chr(181)."", | |
| "≡" => "".chr(226).chr(137).chr(161)."", | |
| "Η" => "".chr(206).chr(151)."", | |
| "η" => "".chr(206).chr(183)."", | |
| "Ð" => "".chr(195).chr(144)."", | |
| "ð" => "".chr(195).chr(176)."", | |
| "Ë" => "".chr(195).chr(139)."", | |
| "ë" => "".chr(195).chr(171)."", | |
| "€" => "".chr(226).chr(130).chr(172)."", | |
| "∃" => "".chr(226).chr(136).chr(131)."", | |
| "ƒ" => "".chr(198).chr(146)."", | |
| "∀" => "".chr(226).chr(136).chr(128)."", | |
| "½" => "".chr(194).chr(189)."", | |
| "¼" => "".chr(194).chr(188)."", | |
| "¾" => "".chr(194).chr(190)."", | |
| "⁄" => "".chr(226).chr(129).chr(132)."", | |
| "Γ" => "".chr(206).chr(147)."", | |
| "γ" => "".chr(206).chr(179)."", | |
| "≥" => "".chr(226).chr(137).chr(165)."", | |
| "↔" => "".chr(226).chr(134).chr(148)."", | |
| "⇔" => "".chr(226).chr(135).chr(148)."", | |
| "♥" => "".chr(226).chr(153).chr(165)."", | |
| "…" => "".chr(226).chr(128).chr(166)."", | |
| "Í" => "".chr(195).chr(141)."", | |
| "í" => "".chr(195).chr(173)."", | |
| "Î" => "".chr(195).chr(142)."", | |
| "î" => "".chr(195).chr(174)."", | |
| "¡" => "".chr(194).chr(161)."", | |
| "Ì" => "".chr(195).chr(140)."", | |
| "ì" => "".chr(195).chr(172)."", | |
| "ℑ" => "".chr(226).chr(132).chr(145)."", | |
| "∞" => "".chr(226).chr(136).chr(158)."", | |
| "∫" => "".chr(226).chr(136).chr(171)."", | |
| "Ι" => "".chr(206).chr(153)."", | |
| "ι" => "".chr(206).chr(185)."", | |
| "¿" => "".chr(194).chr(191)."", | |
| "∈" => "".chr(226).chr(136).chr(136)."", | |
| "Ï" => "".chr(195).chr(143)."", | |
| "ï" => "".chr(195).chr(175)."", | |
| "Κ" => "".chr(206).chr(154)."", | |
| "κ" => "".chr(206).chr(186)."", | |
| "Λ" => "".chr(206).chr(155)."", | |
| "λ" => "".chr(206).chr(187)."", | |
| "⟨" => "".chr(226).chr(140).chr(169)."", | |
| "«" => "".chr(194).chr(171)."", | |
| "←" => "".chr(226).chr(134).chr(144)."", | |
| "⇐" => "".chr(226).chr(135).chr(144)."", | |
| "⌈" => "".chr(226).chr(140).chr(136)."", | |
| "“" => "".chr(226).chr(128).chr(156)."", | |
| "≤" => "".chr(226).chr(137).chr(164)."", | |
| "⌊" => "".chr(226).chr(140).chr(138)."", | |
| "∗" => "".chr(226).chr(136).chr(151)."", | |
| "◊" => "".chr(226).chr(151).chr(138)."", | |
| "‎" => "".chr(226).chr(128).chr(142)."", | |
| "‹" => "".chr(226).chr(128).chr(185)."", | |
| "‘" => "".chr(226).chr(128).chr(152)."", | |
| "¯" => "".chr(194).chr(175)."", | |
| "—" => "".chr(226).chr(128).chr(148)."", | |
| "µ" => "".chr(194).chr(181)."", | |
| "·" => "".chr(194).chr(183)."", | |
| "−" => "".chr(226).chr(136).chr(146)."", | |
| "Μ" => "".chr(206).chr(156)."", | |
| "μ" => "".chr(206).chr(188)."", | |
| "∇" => "".chr(226).chr(136).chr(135)."", | |
| " " => "".chr(194).chr(160)."", | |
| "–" => "".chr(226).chr(128).chr(147)."", | |
| "≠" => "".chr(226).chr(137).chr(160)."", | |
| "∋" => "".chr(226).chr(136).chr(139)."", | |
| "¬" => "".chr(194).chr(172)."", | |
| "∉" => "".chr(226).chr(136).chr(137)."", | |
| "⊄" => "".chr(226).chr(138).chr(132)."", | |
| "Ñ" => "".chr(195).chr(145)."", | |
| "ñ" => "".chr(195).chr(177)."", | |
| "Ν" => "".chr(206).chr(157)."", | |
| "ν" => "".chr(206).chr(189)."", | |
| "Ó" => "".chr(195).chr(147)."", | |
| "ó" => "".chr(195).chr(179)."", | |
| "Ô" => "".chr(195).chr(148)."", | |
| "ô" => "".chr(195).chr(180)."", | |
| "Œ" => "".chr(197).chr(146)."", | |
| "œ" => "".chr(197).chr(147)."", | |
| "Ò" => "".chr(195).chr(146)."", | |
| "ò" => "".chr(195).chr(178)."", | |
| "‾" => "".chr(226).chr(128).chr(190)."", | |
| "Ω" => "".chr(206).chr(169)."", | |
| "ω" => "".chr(207).chr(137)."", | |
| "Ο" => "".chr(206).chr(159)."", | |
| "ο" => "".chr(206).chr(191)."", | |
| "⊕" => "".chr(226).chr(138).chr(149)."", | |
| "∨" => "".chr(226).chr(136).chr(168)."", | |
| "ª" => "".chr(194).chr(170)."", | |
| "º" => "".chr(194).chr(186)."", | |
| "Ø" => "".chr(195).chr(152)."", | |
| "ø" => "".chr(195).chr(184)."", | |
| "Õ" => "".chr(195).chr(149)."", | |
| "õ" => "".chr(195).chr(181)."", | |
| "⊗" => "".chr(226).chr(138).chr(151)."", | |
| "Ö" => "".chr(195).chr(150)."", | |
| "ö" => "".chr(195).chr(182)."", | |
| "¶" => "".chr(194).chr(182)."", | |
| "∂" => "".chr(226).chr(136).chr(130)."", | |
| "‰" => "".chr(226).chr(128).chr(176)."", | |
| "⊥" => "".chr(226).chr(138).chr(165)."", | |
| "Φ" => "".chr(206).chr(166)."", | |
| "φ" => "".chr(207).chr(134)."", | |
| "Π" => "".chr(206).chr(160)."", | |
| "π" => "".chr(207).chr(128)."", | |
| "ϖ" => "".chr(207).chr(150)."", | |
| "±" => "".chr(194).chr(177)."", | |
| "£" => "".chr(194).chr(163)."", | |
| "′" => "".chr(226).chr(128).chr(178)."", | |
| "″" => "".chr(226).chr(128).chr(179)."", | |
| "∏" => "".chr(226).chr(136).chr(143)."", | |
| "∝" => "".chr(226).chr(136).chr(157)."", | |
| "Ψ" => "".chr(206).chr(168)."", | |
| "ψ" => "".chr(207).chr(136)."", | |
| "√" => "".chr(226).chr(136).chr(154)."", | |
| "⟩" => "".chr(226).chr(140).chr(170)."", | |
| "»" => "".chr(194).chr(187)."", | |
| "→" => "".chr(226).chr(134).chr(146)."", | |
| "⇒" => "".chr(226).chr(135).chr(146)."", | |
| "⌉" => "".chr(226).chr(140).chr(137)."", | |
| "”" => "".chr(226).chr(128).chr(157)."", | |
| "ℜ" => "".chr(226).chr(132).chr(156)."", | |
| "®" => "".chr(194).chr(174)."", | |
| "⌋" => "".chr(226).chr(140).chr(139)."", | |
| "Ρ" => "".chr(206).chr(161)."", | |
| "ρ" => "".chr(207).chr(129)."", | |
| "‏" => "".chr(226).chr(128).chr(143)."", | |
| "›" => "".chr(226).chr(128).chr(186)."", | |
| "’" => "".chr(226).chr(128).chr(153)."", | |
| "‚" => "".chr(226).chr(128).chr(154)."", | |
| "Š" => "".chr(197).chr(160)."", | |
| "š" => "".chr(197).chr(161)."", | |
| "⋅" => "".chr(226).chr(139).chr(133)."", | |
| "§" => "".chr(194).chr(167)."", | |
| "­" => "".chr(194).chr(173)."", | |
| "Σ" => "".chr(206).chr(163)."", | |
| "σ" => "".chr(207).chr(131)."", | |
| "ς" => "".chr(207).chr(130)."", | |
| "∼" => "".chr(226).chr(136).chr(188)."", | |
| "♠" => "".chr(226).chr(153).chr(160)."", | |
| "⊂" => "".chr(226).chr(138).chr(130)."", | |
| "⊆" => "".chr(226).chr(138).chr(134)."", | |
| "∑" => "".chr(226).chr(136).chr(145)."", | |
| "¹" => "".chr(194).chr(185)."", | |
| "²" => "".chr(194).chr(178)."", | |
| "³" => "".chr(194).chr(179)."", | |
| "⊃" => "".chr(226).chr(138).chr(131)."", | |
| "⊇" => "".chr(226).chr(138).chr(135)."", | |
| "ß" => "".chr(195).chr(159)."", | |
| "Τ" => "".chr(206).chr(164)."", | |
| "τ" => "".chr(207).chr(132)."", | |
| "∴" => "".chr(226).chr(136).chr(180)."", | |
| "Θ" => "".chr(206).chr(152)."", | |
| "θ" => "".chr(206).chr(184)."", | |
| "ϑ" => "".chr(207).chr(145)."", | |
| " " => "".chr(226).chr(128).chr(137)."", | |
| "Þ" => "".chr(195).chr(158)."", | |
| "þ" => "".chr(195).chr(190)."", | |
| "˜" => "".chr(203).chr(156)."", | |
| "×" => "".chr(195).chr(151)."", | |
| "™" => "".chr(226).chr(132).chr(162)."", | |
| "Ú" => "".chr(195).chr(154)."", | |
| "ú" => "".chr(195).chr(186)."", | |
| "↑" => "".chr(226).chr(134).chr(145)."", | |
| "⇑" => "".chr(226).chr(135).chr(145)."", | |
| "Û" => "".chr(195).chr(155)."", | |
| "û" => "".chr(195).chr(187)."", | |
| "Ù" => "".chr(195).chr(153)."", | |
| "ù" => "".chr(195).chr(185)."", | |
| "¨" => "".chr(194).chr(168)."", | |
| "ϒ" => "".chr(207).chr(146)."", | |
| "Υ" => "".chr(206).chr(165)."", | |
| "υ" => "".chr(207).chr(133)."", | |
| "Ü" => "".chr(195).chr(156)."", | |
| "ü" => "".chr(195).chr(188)."", | |
| "℘" => "".chr(226).chr(132).chr(152)."", | |
| "Ξ" => "".chr(206).chr(158)."", | |
| "ξ" => "".chr(206).chr(190)."", | |
| "Ý" => "".chr(195).chr(157)."", | |
| "ý" => "".chr(195).chr(189)."", | |
| "¥" => "".chr(194).chr(165)."", | |
| "ÿ" => "".chr(195).chr(191)."", | |
| "Ÿ" => "".chr(197).chr(184)."", | |
| "Ζ" => "".chr(206).chr(150)."", | |
| "ζ" => "".chr(206).chr(182)."", | |
| "‍" => "".chr(226).chr(128).chr(141)."", | |
| "‌" => "".chr(226).chr(128).chr(140)."", | |
| """ => '"', | |
| ">" => ">", | |
| "<" => "<" | |
| ); | |
| $return_text = strtr($text_to_convert, $htmlentities_table); | |
| // $return_text = preg_replace('~&#x([0-9a-f]+);~ei', 'code_to_utf8(hexdec("\\1"))', $return_text); | |
| // $return_text = preg_replace('~&#([0-9]+);~e', 'code_to_utf8("\\1")', $return_text); | |
| $return_text = preg_replace_callback('~&#x([0-9a-f]+);~i', function($m){ return code_to_utf8(hexdec($m[1]));}, $return_text); | |
| $return_text = preg_replace_callback('~&#([0-9]+);~', function($m){ return code_to_utf8($m[1]);}, $return_text); | |
| return $return_text; | |
| } | |
| //============================================================+ | |
| // END OF FILE | |
| //============================================================+ | |
| ?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment