. // // See LICENSE.TXT file for more information. // ------------------------------------------------------------------- // // Description : This is a PHP4 function that redefine the // standard html_entity_decode function to support // UTF-8 encoding. // //============================================================+ /** * This is a PHP4 function that redefine the standard * html_entity_decode function to support UTF-8 encoding. * @package com.tecnick.tcpdf * @author Nicola Asuni * @copyright 2006-2010 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com * @link http://www.tcpdf.org * @license http://www.gnu.org/copyleft/lesser.html LGPL */ /** * Returns the UTF-8 string corresponding to unicode value. * @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) { $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(39), 'Å' => 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 $return_text; } //============================================================+ // END OF FILE //============================================================+ ?>