Annotation of embedaddon/php/ext/mbstring/tests/mb_ereg_variation5.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test mb_ereg() function : usage variations - Test anchors in regex
                      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 mb_ereg with anchors (start and end of string) in $pattern
                     17:  */
                     18: 
                     19: echo "*** Testing mb_ereg() : usage variations ***\n";
                     20: 
                     21: mb_regex_encoding('utf-8');
                     22: 
                     23: $string_ascii = b'This is an English string. 0123456789.';
                     24: $string_mb = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=');
                     25: 
                     26: $regex = b'^.*?[[:blank:]]?[[:punct:][:digit:]]+\.?$';
                     27: 
                     28: echo "\nASCII String without \$regs arg:\t\t";
                     29: var_dump(mb_ereg($regex, $string_ascii));
                     30: echo "ASCII String with \$regs arg:\n";
                     31: var_dump(mb_ereg($regex, $string_ascii, $regs_ascii));
                     32: base64_encode_var_dump($regs_ascii);
                     33: 
                     34: echo "\nMultibyte String without \$regs arg:\t";
                     35: var_dump(mb_ereg($regex, $string_mb));
                     36: echo "Multubyte String with \$regs arg:\n";
                     37: var_dump(mb_ereg($regex, $string_mb, $regs_mb));
                     38: base64_encode_var_dump($regs_mb);
                     39: 
                     40: echo "Done";
                     41: 
                     42: /**
                     43:  * replicate a var dump of an array but outputted string values are base64 encoded
                     44:  *
                     45:  * @param array $regs
                     46:  */
                     47: function base64_encode_var_dump($regs) {
                     48:        if ($regs) {
                     49:                echo "array(" . count($regs) . ") {\n";
                     50:                foreach ($regs as $key => $value) {
                     51:                        echo "  [$key]=>\n  ";
                     52:                        if (is_string($value)) {
                     53:                                var_dump(base64_encode($value));
                     54:                        } else {
                     55:                                var_dump($value);
                     56:                        }
                     57:                }
                     58:                echo "}\n";
                     59:        } else {
                     60:                echo "NULL\n";
                     61:        }
                     62: }
                     63: ?>
                     64: --EXPECTF--
                     65: *** Testing mb_ereg() : usage variations ***
                     66: 
                     67: ASCII String without $regs arg:                int(1)
                     68: ASCII String with $regs arg:
                     69: int(38)
                     70: array(1) {
                     71:   [0]=>
                     72:   string(52) "VGhpcyBpcyBhbiBFbmdsaXNoIHN0cmluZy4gMDEyMzQ1Njc4OS4="
                     73: }
                     74: 
                     75: Multibyte String without $regs arg:    int(1)
                     76: Multubyte String with $regs arg:
                     77: int(53)
                     78: array(1) {
                     79:   [0]=>
                     80:   string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII="
                     81: }
                     82: Done

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