Annotation of embedaddon/php/ext/mbstring/tests/mb_ereg_variation7.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test mb_ereg() function : usage variations - different regex features in $pattern
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: * Testing the following regular expression features match correctly:
17: * 1. definite quantifiers
18: * 2. Alternation
19: * 3. subpatterns in parentheses
20: */
21:
22: echo "*** Testing mb_ereg() : usage variations ***\n";
23:
24: if(mb_regex_encoding('utf-8') == true) {
25: echo "Regex encoding set to utf-8\n";
26: } else {
27: echo "Could not set regex encoding to utf-8\n";
28: }
29:
30: $string_ascii = b'This is an English string. 0123456789.';
31: $regex_ascii = b'([A-Z]\w{1,4}is( [aeiou]|h)) ?.*\.\s[0-9]+(5([6-9][79]){2})[[:punct:]]$';
32: var_dump(mb_ereg($regex_ascii, $string_ascii, $regs_ascii));
33: base64_encode_var_dump($regs_ascii);
34:
35: $string_mb = base64_decode('zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868zrXOvc6/LiAwMTIzNDU2Nzg5Lg==');
36: $regex_mb = base64_decode("W86RLc6pXShcdysgKSvOtVvOsS3PiVxzXSvOui4qKM+MfM6/KS4qXC5cc1swLTldKyg1KFs2LTldWzc5XSl7Mn0pW1s6cHVuY3Q6XV0k");
37: var_dump(mb_ereg($regex_mb, $string_mb, $regs_mb));
38: base64_encode_var_dump($regs_mb);
39:
40: /**
41: * replicate a var dump of an array but outputted string values are base64 encoded
42: *
43: * @param array $regs
44: */
45: function base64_encode_var_dump($regs) {
46: if ($regs) {
47: echo "array(" . count($regs) . ") {\n";
48: foreach ($regs as $key => $value) {
49: echo " [$key]=>\n ";
50: if (is_string($value)) {
51: var_dump(base64_encode($value));
52: } else {
53: var_dump($value);
54: }
55: }
56: echo "}\n";
57: } else {
58: echo "NULL\n";
59: }
60: }
61:
62: echo "Done";
63:
64: ?>
65: --EXPECT--
66: *** Testing mb_ereg() : usage variations ***
67: Regex encoding set to utf-8
68: int(38)
69: array(5) {
70: [0]=>
71: string(52) "VGhpcyBpcyBhbiBFbmdsaXNoIHN0cmluZy4gMDEyMzQ1Njc4OS4="
72: [1]=>
73: string(8) "VGhpcyBp"
74: [2]=>
75: string(4) "IGk="
76: [3]=>
77: string(8) "NTY3ODk="
78: [4]=>
79: string(4) "ODk="
80: }
81: int(64)
82: array(5) {
83: [0]=>
84: string(88) "zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868zrXOvc6/LiAwMTIzNDU2Nzg5Lg=="
85: [1]=>
86: string(16) "zrXOr869zrHOuSA="
87: [2]=>
88: string(4) "zr8="
89: [3]=>
90: string(8) "NTY3ODk="
91: [4]=>
92: string(4) "ODk="
93: }
94: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>