Annotation of embedaddon/php/ext/mbstring/tests/mb_ereg_variation3.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test mb_ereg() function : usage variations - pass different character classes to see they match correctly
        !             3: --SKIPIF--
        !             4: <?php
        !             5: extension_loaded('mbstring') or die('skip');
        !             6: function_exists('mb_ereg') or die("skip mb_ereg() is not available in this build");
        !             7: ?>
        !             8: --FILE--
        !             9: <?php
        !            10: /* Prototype  : int mb_ereg(string $pattern, string $string [, array $registers])
        !            11:  * Description: Regular expression match for multibyte string 
        !            12:  * Source code: ext/mbstring/php_mbregex.c
        !            13:  */
        !            14: 
        !            15: /*
        !            16:  * test that mb_ereg can match correctly when passed different character classes.
        !            17:  */
        !            18: 
        !            19: echo "*** Testing mb_ereg() : variation ***\n";
        !            20: 
        !            21: 
        !            22: mb_regex_encoding('utf-8'); // have to set otherwise won't match $mb properly
        !            23: $mb = base64_decode('5pel5pys6Kqe');
        !            24: $character_classes = array (b'aB1'    => b'[[:alnum:]]+', /*1*/
        !            25:                             b'aBcD'   => b'[[:alpha:]]+',
        !            26:                             b'ab/='   => b'[[:ascii:]]+',
        !            27:                             b" \t"    => b'[[:blank:]]+',
        !            28:                             b'234'    => b'[[:digit:]]+', /*5*/
        !            29:                             "$mb"    => b'[[:graph:]]+',
        !            30:                             b'fjds'   => b'[[:lower:]]+',
        !            31:                             b"$mb\t"  => b'[[:print:]]+',
        !            32:                             b'.!"*@'  => b'[[:punct:]]+',
        !            33:                             b"\t"     => b'[[:space:]]+', /*10*/
        !            34:                             b'IDSJV'  => b'[[:upper:]]+',
        !            35:                             b'3b5D'   => b'[[:xdigit:]]+'); /*12*/
        !            36: 
        !            37: $iterator = 1;
        !            38: foreach($character_classes as $string => $pattern) {
        !            39:        if (is_array(@$regs)) {
        !            40:                $regs = null;
        !            41:        }
        !            42:        // make sure any multibyte output is in base 64
        !            43:        echo "\n-- Iteration $iterator --\n";
        !            44:        var_dump(mb_ereg($pattern, $string, $regs));
        !            45:        base64_encode_var_dump($regs);
        !            46:        $iterator++;
        !            47: }
        !            48: /**
        !            49:  * replicate a var dump of an array but outputted string values are base64 encoded
        !            50:  *
        !            51:  * @param array $regs
        !            52:  */
        !            53: function base64_encode_var_dump($regs) {
        !            54:        if ($regs) {
        !            55:                echo "array(" . count($regs) . ") {\n";
        !            56:                foreach ($regs as $key => $value) {
        !            57:                        echo "  [$key]=>\n  ";
        !            58:                        if (is_string($value)) {
        !            59:                                var_dump(base64_encode($value));
        !            60:                        } else {
        !            61:                                var_dump($value);
        !            62:                        }
        !            63:                }
        !            64:                echo "}\n";
        !            65:        } else {
        !            66:                echo "NULL\n";
        !            67:        }
        !            68: }
        !            69: 
        !            70: echo "Done";
        !            71: ?>
        !            72: 
        !            73: --EXPECT--
        !            74: *** Testing mb_ereg() : variation ***
        !            75: 
        !            76: -- Iteration 1 --
        !            77: int(3)
        !            78: array(1) {
        !            79:   [0]=>
        !            80:   string(4) "YUIx"
        !            81: }
        !            82: 
        !            83: -- Iteration 2 --
        !            84: int(4)
        !            85: array(1) {
        !            86:   [0]=>
        !            87:   string(8) "YUJjRA=="
        !            88: }
        !            89: 
        !            90: -- Iteration 3 --
        !            91: int(4)
        !            92: array(1) {
        !            93:   [0]=>
        !            94:   string(8) "YWIvPQ=="
        !            95: }
        !            96: 
        !            97: -- Iteration 4 --
        !            98: int(2)
        !            99: array(1) {
        !           100:   [0]=>
        !           101:   string(4) "IAk="
        !           102: }
        !           103: 
        !           104: -- Iteration 5 --
        !           105: int(3)
        !           106: array(1) {
        !           107:   [0]=>
        !           108:   string(4) "MjM0"
        !           109: }
        !           110: 
        !           111: -- Iteration 6 --
        !           112: int(9)
        !           113: array(1) {
        !           114:   [0]=>
        !           115:   string(12) "5pel5pys6Kqe"
        !           116: }
        !           117: 
        !           118: -- Iteration 7 --
        !           119: int(4)
        !           120: array(1) {
        !           121:   [0]=>
        !           122:   string(8) "Zmpkcw=="
        !           123: }
        !           124: 
        !           125: -- Iteration 8 --
        !           126: int(10)
        !           127: array(1) {
        !           128:   [0]=>
        !           129:   string(16) "5pel5pys6KqeCQ=="
        !           130: }
        !           131: 
        !           132: -- Iteration 9 --
        !           133: int(5)
        !           134: array(1) {
        !           135:   [0]=>
        !           136:   string(8) "LiEiKkA="
        !           137: }
        !           138: 
        !           139: -- Iteration 10 --
        !           140: int(1)
        !           141: array(1) {
        !           142:   [0]=>
        !           143:   string(4) "CQ=="
        !           144: }
        !           145: 
        !           146: -- Iteration 11 --
        !           147: int(5)
        !           148: array(1) {
        !           149:   [0]=>
        !           150:   string(8) "SURTSlY="
        !           151: }
        !           152: 
        !           153: -- Iteration 12 --
        !           154: int(4)
        !           155: array(1) {
        !           156:   [0]=>
        !           157:   string(8) "M2I1RA=="
        !           158: }
        !           159: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>