Annotation of embedaddon/php/ext/pcre/tests/004.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: abusing pcre
3: --FILE--
4: <?php
5:
6: var_dump(preg_match_all('/((?:(?:unsigned|struct)\s+)?\w+)(?:\s*(\*+)\s+|\s+(\**))(\w+(?:\[\s*\w*\s*\])?)\s*(?:(=)[^,;]+)?((?:\s*,\s*\**\s*\w+(?:\[\s*\w*\s*\])?\s*(?:=[^,;]+)?)*)\s*;/S', 'unsigned int xpto = 124; short a, b;', $m, PREG_SET_ORDER));
7: var_dump($m);
8:
9: var_dump(preg_match_all('/(?:\([^)]+\))?(&?)([\w>.()-]+(?:\[\w+\])?)\s*,?((?:\)*\s*=)?)/S', '&a, b, &c', $m, PREG_SET_ORDER));
10: var_dump($m);
11:
12: var_dump(preg_match_all('/zend_parse_parameters(?:_ex\s*\([^,]+,[^,]+|\s*\([^,]+),\s*"([^"]*)"\s*,\s*([^{;]*)/S', 'zend_parse_parameters( 0, "addd|s/", a, b, &c);', $m, PREG_SET_ORDER | PREG_OFFSET_CAPTURE));
13: var_dump($m);
14:
15: var_dump(preg_replace(array('@//.*@S', '@/\*.*\*/@SsUe'), array('', 'preg_replace("/[^\r\n]+/S", "", \'$0\')'), "hello\n//x \n/*\ns\n*/"));
16:
17: var_dump(preg_split('/PHP_(?:NAMED_)?(?:FUNCTION|METHOD)\s*\((\w+(?:,\s*\w+)?)\)/S', "PHP_FUNCTION(s, preg_match)\n{\nlalala", -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE));
18: ?>
19: --EXPECT--
20: int(2)
21: array(2) {
22: [0]=>
23: array(7) {
24: [0]=>
25: string(24) "unsigned int xpto = 124;"
26: [1]=>
27: string(12) "unsigned int"
28: [2]=>
29: string(0) ""
30: [3]=>
31: string(0) ""
32: [4]=>
33: string(4) "xpto"
34: [5]=>
35: string(1) "="
36: [6]=>
37: string(0) ""
38: }
39: [1]=>
40: array(7) {
41: [0]=>
42: string(11) "short a, b;"
43: [1]=>
44: string(5) "short"
45: [2]=>
46: string(0) ""
47: [3]=>
48: string(0) ""
49: [4]=>
50: string(1) "a"
51: [5]=>
52: string(0) ""
53: [6]=>
54: string(3) ", b"
55: }
56: }
57: int(3)
58: array(3) {
59: [0]=>
60: array(4) {
61: [0]=>
62: string(3) "&a,"
63: [1]=>
64: string(1) "&"
65: [2]=>
66: string(1) "a"
67: [3]=>
68: string(0) ""
69: }
70: [1]=>
71: array(4) {
72: [0]=>
73: string(2) "b,"
74: [1]=>
75: string(0) ""
76: [2]=>
77: string(1) "b"
78: [3]=>
79: string(0) ""
80: }
81: [2]=>
82: array(4) {
83: [0]=>
84: string(2) "&c"
85: [1]=>
86: string(1) "&"
87: [2]=>
88: string(1) "c"
89: [3]=>
90: string(0) ""
91: }
92: }
93: int(1)
94: array(1) {
95: [0]=>
96: array(3) {
97: [0]=>
98: array(2) {
99: [0]=>
100: string(46) "zend_parse_parameters( 0, "addd|s/", a, b, &c)"
101: [1]=>
102: int(0)
103: }
104: [1]=>
105: array(2) {
106: [0]=>
107: string(7) "addd|s/"
108: [1]=>
109: int(27)
110: }
111: [2]=>
112: array(2) {
113: [0]=>
114: string(9) "a, b, &c)"
115: [1]=>
116: int(37)
117: }
118: }
119: }
120: string(9) "hello
121:
122:
123:
124: "
125: array(3) {
126: [0]=>
127: array(2) {
128: [0]=>
129: string(0) ""
130: [1]=>
131: int(0)
132: }
133: [1]=>
134: array(2) {
135: [0]=>
136: string(13) "s, preg_match"
137: [1]=>
138: int(13)
139: }
140: [2]=>
141: array(2) {
142: [0]=>
143: string(9) "
144: {
145: lalala"
146: [1]=>
147: int(27)
148: }
149: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>