1--TEST--
2Test mb_decode_numericentity() function : Convert HTML-Entities to UTF-8
3--EXTENSIONS--
4mbstring
5--FILE--
6<?php
7$str1 = '&#161;&#162;&#163;&#164;&#165;&#166;&#167;&#168;&#169;&#170;&#171;&#172;&#173;&#174;&#175;&#176;&#177;&#178;&#179;&#180;&#181;&#182;&#183;&#184;&#185;&#186;&#187;&#188;&#189;&#190;&#191;&#192;&#193;&#194;&#195;&#196;&#197;&#198;&#199;&#200;&#201;&#202;&#203;&#204;&#205;&#206;&#207;&#208;&#209;&#210;&#211;&#212;&#213;&#214;&#215;&#216;&#217;&#218;&#219;&#220;&#221;&#222;&#223;&#224;&#225;&#226;&#227;&#228;&#229;&#230;&#231;&#232;&#233;&#234;&#235;&#236;&#237;&#238;&#239;&#240;&#241;&#242;&#243;&#244;&#245;&#246;&#247;&#248;&#249;&#250;&#251;&#252;&#253;&#254;&#255;';
8$str2 = '&#402;&#913;&#914;&#915;&#916;&#917;&#918;&#919;&#920;&#921;&#922;&#923;&#924;&#925;&#926;&#927;&#928;&#929;&#931;&#932;&#933;&#934;&#935;&#936;&#937;&#945;&#946;&#947;&#948;&#949;&#950;&#951;&#952;&#953;&#954;&#955;&#956;&#957;&#958;&#959;&#960;&#961;&#962;&#963;&#964;&#965;&#966;&#967;&#968;&#969;&#977;&#978;&#982;&#8226;&#8230;&#8242;&#8243;&#8254;&#8260;&#8472;&#8465;&#8476;&#8482;&#8501;&#8592;&#8593;&#8594;&#8595;&#8596;&#8629;&#8656;&#8657;&#8658;&#8659;&#8660;&#8704;&#8706;&#8707;&#8709;&#8711;&#8712;&#8713;&#8715;&#8719;&#8721;&#8722;&#8727;&#8730;&#8733;&#8734;&#8736;&#8743;&#8744;&#8745;&#8746;&#8747;&#8756;&#8764;&#8773;&#8776;&#8800;&#8801;&#8804;&#8805;&#8834;&#8835;&#8836;&#8838;&#8839;&#8853;&#8855;&#8869;&#8901;&#8968;&#8969;&#8970;&#8971;&#9001;&#9002;&#9674;&#9824;&#9827;&#9829;&#9830;';
9$str3 = 'a&#338;b&#339;c&#352;d&#353;e&#8364;fg';
10$convmap = array(0x0, 0x2FFFF, 0, 0xFFFF);
11echo mb_decode_numericentity($str1, $convmap, "UTF-8")."\n";
12echo mb_decode_numericentity($str2, $convmap, "UTF-8")."\n";
13echo mb_decode_numericentity($str3, $convmap, "UTF-8")."\n";
14
15echo mb_decode_numericentity('&#1000000000', $convmap), "\n";
16echo mb_decode_numericentity('&#9000000000', $convmap), "\n";
17echo mb_decode_numericentity('&#10000000000', $convmap), "\n";
18echo mb_decode_numericentity('&#100000000000', $convmap), "\n";
19
20echo mb_decode_numericentity('&#000000000000', $convmap), "\n";
21echo mb_decode_numericentity('&#00000000000', $convmap), "\n";
22echo mb_decode_numericentity('&#0000000000', $convmap), "\n";
23echo mb_decode_numericentity('&#000000000', $convmap), "\n";
24
25$convmap = [];
26echo mb_decode_numericentity('f&ouml;o', $convmap, "UTF-8")."\n";
27
28$convmap = array(0x0, 0x2FFFF, 0); // 3 elements
29try {
30    echo mb_decode_numericentity($str3, $convmap, "UTF-8")."\n";
31} catch (ValueError $ex) {
32    echo $ex->getMessage()."\n";
33}
34
35?>
36--EXPECT--
37¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
38ƒΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϑϒϖ•…′″‾⁄℘ℑℜ™ℵ←↑→↓↔↵⇐⇑⇒⇓⇔∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌈⌉⌊⌋〈〉◊♠♣♥♦
39aŒbœcŠdše€fg
40&#1000000000
41&#9000000000
42&#10000000000
43&#100000000000
44&#000000000000
45&#00000000000
46&#0000000000
47&#000000000
48f&ouml;o
49mb_decode_numericentity(): Argument #2 ($map) must have a multiple of 4 elements
50