Annotation of embedaddon/php/ext/mbstring/tests/mb_ereg_variation6.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test mb_ereg() function : usage variations - match special characters
! 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 mb_ereg() matches special characters for $pattern
! 17: */
! 18:
! 19: echo "*** Testing mb_ereg() : usage variations ***\n";
! 20:
! 21: if(mb_regex_encoding('utf-8') == true) {
! 22: echo "Regex encoding set to utf-8\n";
! 23: } else {
! 24: echo "Could not set regex encoding to utf-8\n";
! 25: }
! 26:
! 27: $regex_char = array ('\w+' => b'\w+',
! 28: '\W+' => b'\W+',
! 29: '\s+' => b'\s+',
! 30: '\S+' => b'\S+',
! 31: '\d+' => b'\d+',
! 32: '\D+' => b'\D+',
! 33: '\b' => b'\b',
! 34: '\B' => b'\B');
! 35:
! 36: $string_ascii = b'This is an English string. 0123456789.';
! 37: $string_mb = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=');
! 38:
! 39: foreach ($regex_char as $displayChar => $char) {
! 40: echo "\n--** Pattern is: $displayChar **--\n";
! 41: if (@$regs_ascii || @$regs_mb) {
! 42: $regs_ascii = null;
! 43: $regs_mb = null;
! 44: }
! 45: echo "-- ASCII String: --\n";
! 46: var_dump(mb_ereg($char, $string_ascii, $regs_ascii));
! 47: base64_encode_var_dump($regs_ascii);
! 48:
! 49: echo "-- Multibyte String: --\n";
! 50: var_dump(mb_ereg($char, $string_mb, $regs_mb));
! 51: base64_encode_var_dump($regs_mb);
! 52:
! 53: }
! 54:
! 55: /**
! 56: * replicate a var dump of an array but outputted string values are base64 encoded
! 57: *
! 58: * @param array $regs
! 59: */
! 60: function base64_encode_var_dump($regs) {
! 61: if ($regs) {
! 62: echo "array(" . count($regs) . ") {\n";
! 63: foreach ($regs as $key => $value) {
! 64: echo " [$key]=>\n ";
! 65: if (is_string($value)) {
! 66: var_dump(base64_encode($value));
! 67: } else {
! 68: var_dump($value);
! 69: }
! 70: }
! 71: echo "}\n";
! 72: } else {
! 73: echo "NULL\n";
! 74: }
! 75: }
! 76:
! 77: echo "Done";
! 78:
! 79: ?>
! 80: --EXPECT--
! 81: *** Testing mb_ereg() : usage variations ***
! 82: Regex encoding set to utf-8
! 83:
! 84: --** Pattern is: \w+ **--
! 85: -- ASCII String: --
! 86: int(4)
! 87: array(1) {
! 88: [0]=>
! 89: string(8) "VGhpcw=="
! 90: }
! 91: -- Multibyte String: --
! 92: int(27)
! 93: array(1) {
! 94: [0]=>
! 95: string(36) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ"
! 96: }
! 97:
! 98: --** Pattern is: \W+ **--
! 99: -- ASCII String: --
! 100: int(1)
! 101: array(1) {
! 102: [0]=>
! 103: string(4) "IA=="
! 104: }
! 105: -- Multibyte String: --
! 106: int(3)
! 107: array(1) {
! 108: [0]=>
! 109: string(4) "44CC"
! 110: }
! 111:
! 112: --** Pattern is: \s+ **--
! 113: -- ASCII String: --
! 114: int(1)
! 115: array(1) {
! 116: [0]=>
! 117: string(4) "IA=="
! 118: }
! 119: -- Multibyte String: --
! 120: bool(false)
! 121: NULL
! 122:
! 123: --** Pattern is: \S+ **--
! 124: -- ASCII String: --
! 125: int(4)
! 126: array(1) {
! 127: [0]=>
! 128: string(8) "VGhpcw=="
! 129: }
! 130: -- Multibyte String: --
! 131: int(53)
! 132: array(1) {
! 133: [0]=>
! 134: string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII="
! 135: }
! 136:
! 137: --** Pattern is: \d+ **--
! 138: -- ASCII String: --
! 139: int(10)
! 140: array(1) {
! 141: [0]=>
! 142: string(16) "MDEyMzQ1Njc4OQ=="
! 143: }
! 144: -- Multibyte String: --
! 145: int(20)
! 146: array(1) {
! 147: [0]=>
! 148: string(28) "MDEyMzTvvJXvvJbvvJfvvJjvvJk="
! 149: }
! 150:
! 151: --** Pattern is: \D+ **--
! 152: -- ASCII String: --
! 153: int(27)
! 154: array(1) {
! 155: [0]=>
! 156: string(36) "VGhpcyBpcyBhbiBFbmdsaXNoIHN0cmluZy4g"
! 157: }
! 158: -- Multibyte String: --
! 159: int(30)
! 160: array(1) {
! 161: [0]=>
! 162: string(40) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CC"
! 163: }
! 164:
! 165: --** Pattern is: \b **--
! 166: -- ASCII String: --
! 167: int(1)
! 168: array(1) {
! 169: [0]=>
! 170: bool(false)
! 171: }
! 172: -- Multibyte String: --
! 173: int(1)
! 174: array(1) {
! 175: [0]=>
! 176: bool(false)
! 177: }
! 178:
! 179: --** Pattern is: \B **--
! 180: -- ASCII String: --
! 181: int(1)
! 182: array(1) {
! 183: [0]=>
! 184: bool(false)
! 185: }
! 186: -- Multibyte String: --
! 187: int(1)
! 188: array(1) {
! 189: [0]=>
! 190: bool(false)
! 191: }
! 192: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>