Annotation of embedaddon/php/ext/mbstring/tests/mb_ereg_variation3.phpt, revision 1.1.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>