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

1.1     ! misho       1: --TEST--
        !             2: Test mb_ereg() function : usage variations - pass different character classes as pattern for multibyte string
        !             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 how character classes match a multibyte string
        !            17:  */
        !            18: 
        !            19: echo "*** Testing mb_ereg() : usage variations ***\n";
        !            20: 
        !            21: mb_regex_encoding('utf-8');
        !            22: 
        !            23: //contains japanese characters, ASCII digits and different, UTF-8 encoded digits
        !            24: $string_mb = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=');
        !            25: 
        !            26: $character_classes = array (b'[[:alnum:]]+', /*1*/
        !            27:                             b'[[:alpha:]]+',
        !            28:                             b'[[:ascii:]]+',
        !            29:                             b'[[:blank:]]+',
        !            30:                             b'[[:cntrl:]]+',/*5*/
        !            31:                             b'[[:digit:]]+',
        !            32:                             b'[[:graph:]]+',
        !            33:                             b'[[:lower:]]+',
        !            34:                             b'[[:print:]]+',
        !            35:                             b'[[:punct:]]+', /*10*/
        !            36:                             b'[[:space:]]+',
        !            37:                             b'[[:upper:]]+',
        !            38:                             b'[[:xdigit:]]+'); /*13*/
        !            39: 
        !            40: $iterator = 1;
        !            41: foreach ($character_classes as $pattern) {
        !            42:        if (is_array(@$regs)) {
        !            43:                $regs = null;
        !            44:        }
        !            45:        echo "\n-- Iteration $iterator --\n";
        !            46:        var_dump(mb_ereg($pattern, $string_mb, $regs));
        !            47:        if ($regs) {
        !            48:                base64_encode_var_dump($regs);
        !            49:        }
        !            50:        $iterator++;
        !            51: }
        !            52: /**
        !            53:  * replicate a var dump of an array but outputted string values are base64 encoded
        !            54:  *
        !            55:  * @param array $regs
        !            56:  */
        !            57: function base64_encode_var_dump($regs) {
        !            58:        if ($regs) {
        !            59:                echo "array(" . count($regs) . ") {\n";
        !            60:                foreach ($regs as $key => $value) {
        !            61:                        echo "  [$key]=>\n  ";
        !            62:                        if (is_string($value)) {
        !            63:                                var_dump(base64_encode($value));
        !            64:                        } else {
        !            65:                                var_dump($value);
        !            66:                        }
        !            67:                }
        !            68:                echo "}\n";
        !            69:        } else {
        !            70:                echo "NULL\n";
        !            71:        }
        !            72: }
        !            73: echo "Done";
        !            74: 
        !            75: ?>
        !            76: --EXPECTF--
        !            77: *** Testing mb_ereg() : usage variations ***
        !            78: 
        !            79: -- Iteration 1 --
        !            80: int(47)
        !            81: array(1) {
        !            82:   [0]=>
        !            83:   string(64) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZMDEyMzTvvJXvvJbvvJfvvJjvvJk="
        !            84: }
        !            85: 
        !            86: -- Iteration 2 --
        !            87: int(27)
        !            88: array(1) {
        !            89:   [0]=>
        !            90:   string(36) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ"
        !            91: }
        !            92: 
        !            93: -- Iteration 3 --
        !            94: int(5)
        !            95: array(1) {
        !            96:   [0]=>
        !            97:   string(8) "MDEyMzQ="
        !            98: }
        !            99: 
        !           100: -- Iteration 4 --
        !           101: bool(false)
        !           102: 
        !           103: -- Iteration 5 --
        !           104: bool(false)
        !           105: 
        !           106: -- Iteration 6 --
        !           107: int(20)
        !           108: array(1) {
        !           109:   [0]=>
        !           110:   string(28) "MDEyMzTvvJXvvJbvvJfvvJjvvJk="
        !           111: }
        !           112: 
        !           113: -- Iteration 7 --
        !           114: int(50)
        !           115: array(1) {
        !           116:   [0]=>
        !           117:   string(68) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII="
        !           118: }
        !           119: 
        !           120: -- Iteration 8 --
        !           121: bool(false)
        !           122: 
        !           123: -- Iteration 9 --
        !           124: int(50)
        !           125: array(1) {
        !           126:   [0]=>
        !           127:   string(68) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII="
        !           128: }
        !           129: 
        !           130: -- Iteration 10 --
        !           131: int(3)
        !           132: array(1) {
        !           133:   [0]=>
        !           134:   string(4) "44CC"
        !           135: }
        !           136: 
        !           137: -- Iteration 11 --
        !           138: bool(false)
        !           139: 
        !           140: -- Iteration 12 --
        !           141: bool(false)
        !           142: 
        !           143: -- Iteration 13 --
        !           144: int(5)
        !           145: array(1) {
        !           146:   [0]=>
        !           147:   string(8) "MDEyMzQ="
        !           148: }
        !           149: Done

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