Updates to Tomato RAF including NGINX && PHP
[tomato.git] / release / src / router / php / ext / pcre / tests / 004.phpt
blobb1e95866268a3e9268c7fceaafec7e45ef74211e
1 --TEST--
2 abusing pcre
3 --FILE--
4 <?php
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);
9 var_dump(preg_match_all('/(?:\([^)]+\))?(&?)([\w>.()-]+(?:\[\w+\])?)\s*,?((?:\)*\s*=)?)/S', '&a, b, &c', $m, PREG_SET_ORDER));
10 var_dump($m);
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);
15 var_dump(preg_replace(array('@//.*@S', '@/\*.*\*/@SsUe'), array('', 'preg_replace("/[^\r\n]+/S", "", \'$0\')'), "hello\n//x \n/*\ns\n*/"));
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));
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   }
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   }
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   }
120 string(9) "hello
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) "
145 lalala"
146     [1]=>
147     int(27)
148   }