/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/mbstring/tests/mb_encode_numericentity.phpt
76 строк
5 KB
Gina Peter Banyard
ext/mbstring: move unsigned 32 bit integer tests to a new test (#12891)
07 дек 2023, 23:19
Не верифицирован
07 дек 2023, 23:19
7684a3d
Код
Авторство
О чём код?
--TEST-- Test mb_encode_numericentity() function: Convert text to HTML entities --EXTENSIONS-- mbstring --FILE-- <?php $str1 = '¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'; $str2 = 'ƒΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϑϒϖ•…′″‾⁄℘ℑℜ™ℵ←↑→↓↔↵⇐⇑⇒⇓⇔∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌈⌉⌊⌋〈〉◊♠♣♥♦'; $convmap = array(0x0, 0x2FFFF, 0, 0xFFFF); echo "1: " . mb_encode_numericentity($str1, $convmap, "UTF-8") . "\n"; echo "1 (hex): " . mb_encode_numericentity($str1, $convmap, "UTF-8", true) . "\n"; echo "2: " . mb_encode_numericentity($str2, $convmap, "UTF-8") . "\n"; $convmap = array(0xFF, 0x2FFFF, 0, 0xFFFF); echo "3: " . mb_encode_numericentity('aŒbœcŠdše€fg', $convmap, "UTF-8") . "\n"; $convmap = []; echo "4: " . mb_encode_numericentity('föo', $convmap, "UTF-8") . "\n"; // HTML-encode a null byte echo "6: " . mb_encode_numericentity("\x00", array(0, 1, 0, 0xFFFF), "UTF-8", false) . "\n"; echo "6 (hex): " . mb_encode_numericentity("\x00", array(0, 1, 0, 0xFFFF), "UTF-8", true) . "\n"; // Try doing weird things with convmap $convmap = [ 0, 0, 0, 0, // Only one codepoint, empty mask 100, 50, 0, 0xFFFF // 'End' codepoint is before 'start' codepoint ]; echo "7: " . mb_encode_numericentity('föo', $convmap, "UTF-8") . "\n"; echo "7 (hex): " . mb_encode_numericentity('föo', $convmap, "UTF-8", true) . "\n"; // Try using positive offset $convmap = [0, 10, 1000, 0xFFFF]; echo "8: " . mb_encode_numericentity("\x01\x02\x03", $convmap, "UTF-8") . "\n"; echo "8 (hex): " . mb_encode_numericentity("\x01\x02\x03", $convmap, "UTF-8", true) . "\n"; // Try using negative offset $convmap = [0, 10, -100000, 0xFFFFFF]; echo "9: " . mb_encode_numericentity("\x01\x02\x03", $convmap, "UTF-8") . "\n"; echo "9 (hex): " . mb_encode_numericentity("\x01\x02\x03", $convmap, "UTF-8", true) . "\n"; // Try using mask to remove some bits $convmap = [0, 1000, 0, 0x123]; echo "10: " . mb_encode_numericentity('föo', $convmap, "UTF-8") . "\n"; echo "10 (hex): " . mb_encode_numericentity('föo', $convmap, "UTF-8", true) . "\n"; // Try different text encoding $convmap = [0, 0xFFFF, 0, 0xFFFF]; $iso2022jp = "\x1B\$B\x21\x21!r\x1B(BABC"; echo "11: " . mb_encode_numericentity($iso2022jp, $convmap, "ISO-2022-JP") . "\n"; echo "11 (hex): " . mb_encode_numericentity($iso2022jp, $convmap, "ISO-2022-JP", true) . "\n"; // Regression test; the old implementation could only emit decimal entities with about 7 digits $convmap = [0x2b, 0x2d4, 0x75656500, 0x656d2c53]; echo "12: " . mb_encode_numericentity("m", $convmap, "ASCII") . "\n"; ?> --EXPECT-- 1: ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ 1 (hex): ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ 2: ƒΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϑϒϖ•…′″‾⁄℘ℑℜ™ℵ←↑→↓↔↵⇐⇑⇒⇓⇔∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌈⌉⌊⌋〈〉◊♠♣♥♦ 3: aŒbœcŠdše€fg 4: föo 6: � 6 (hex): � 7: föo 7 (hex): föo 8: ϩϪϫ 8 (hex): ϩϪϫ 9: ��� 9 (hex): ��� 10: ""# 10 (hex): ""# 11:  £ABC 11 (hex):  £ABC 12: �