]> granicus.if.org Git - php/blob
25b5f8745d
[php] /
1 --TEST--
2 Test parse_str() function : basic functionality
3 --INI--
4 max_input_vars=100
5 filter.default=unsafe_raw
6 --FILE--
7 <?php
8 /* Prototype  : void parse_str  ( string $str , array &$arr )
9  * Description: Parses the string into variables
10  * Source code: ext/standard/string.c
11 */
12
13 echo "*** Testing parse_str() : basic functionality ***\n";
14
15 echo "\nTest string with array values and results array\n";
16 $s1 = "first=abc&a[]=123&a[]=false&b[]=str&c[]=3.5&a[]=last";
17 var_dump(parse_str($s1, $res3_array));
18 var_dump($res3_array);
19
20 echo "\nTest string containing numerical array keys\n";
21 $str = "arr[1]=sid&arr[4]=bill";
22 var_dump(parse_str($str, $res));
23 var_dump($res);
24
25 echo "\nTest string containing associative keys\n";
26 $str = "arr[first]=sid&arr[forth]=bill";
27 var_dump(parse_str($str, $res));
28 var_dump($res);
29
30 echo "\nTest string with encoded data\n";
31 $s1 = "a=%3c%3d%3d%20%20foo+bar++%3d%3d%3e&b=%23%23%23Hello+World%23%23%23";
32 parse_str($s1, $res);
33 var_dump($res);
34
35 echo "\nTest string with single quotes characters\n";
36 $s1 = "firstname=Bill&surname=O%27Reilly";
37 var_dump(parse_str($s1, $res));
38 var_dump($res);
39
40 echo "\nTest string with backslash characters\n";
41 $s1 = "sum=10%5c2%3d5";
42 var_dump(parse_str($s1, $res));
43 var_dump($res);
44
45 echo "\nTest string with double quotes data\n";
46 $s1 = "str=A+string+with+%22quoted%22+strings";
47 var_dump(parse_str($s1, $res));
48 var_dump($res);
49
50 echo "\nTest string with nulls\n";
51 $s1 = "str=A%20string%20with%20containing%20%00%00%00%20nulls";
52 var_dump(parse_str($s1, $res));
53 var_dump($res);
54
55 echo "\nTest string with 2-dim array with numeric keys\n";
56 $str = "arr[3][4]=sid&arr[3][6]=fred";
57 var_dump(parse_str($str, $res));
58 var_dump($res);
59
60 echo "\nTest string with 2-dim array with null keys\n";
61 $str = "arr[][]=sid&arr[][]=fred";
62 var_dump(parse_str($str, $res));
63 var_dump($res);
64
65 echo "\nTest string with 2-dim array with non-numeric keys\n";
66 $str = "arr[one][four]=sid&arr[three][six]=fred";
67 var_dump(parse_str($str, $res));
68 var_dump($res);
69
70 echo "\nTest string with 3-dim array with numeric keys\n";
71 $str = "arr[1][2][3]=sid&arr[1][2][6]=fred";
72 var_dump(parse_str($str, $res));
73 var_dump($res);
74
75 ?>
76 --EXPECTF--
77 *** Testing parse_str() : basic functionality ***
78
79 Test string with array values and results array
80 NULL
81 array(4) {
82   ["first"]=>
83   string(3) "abc"
84   ["a"]=>
85   array(3) {
86     [0]=>
87     string(3) "123"
88     [1]=>
89     string(5) "false"
90     [2]=>
91     string(4) "last"
92   }
93   ["b"]=>
94   array(1) {
95     [0]=>
96     string(3) "str"
97   }
98   ["c"]=>
99   array(1) {
100     [0]=>
101     string(3) "3.5"
102   }
103 }
104
105 Test string containing numerical array keys
106 NULL
107 array(1) {
108   ["arr"]=>
109   array(2) {
110     [1]=>
111     string(3) "sid"
112     [4]=>
113     string(4) "bill"
114   }
115 }
116
117 Test string containing associative keys
118 NULL
119 array(1) {
120   ["arr"]=>
121   array(2) {
122     ["first"]=>
123     string(3) "sid"
124     ["forth"]=>
125     string(4) "bill"
126   }
127 }
128
129 Test string with encoded data
130 array(2) {
131   ["a"]=>
132   string(17) "<==  foo bar  ==>"
133   ["b"]=>
134   string(17) "###Hello World###"
135 }
136
137 Test string with single quotes characters
138 NULL
139 array(2) {
140   ["firstname"]=>
141   string(4) "Bill"
142   ["surname"]=>
143   string(8) "O'Reilly"
144 }
145
146 Test string with backslash characters
147 NULL
148 array(1) {
149   ["sum"]=>
150   string(6) "10\2=5"
151 }
152
153 Test string with double quotes data
154 NULL
155 array(1) {
156   ["str"]=>
157   string(30) "A string with "quoted" strings"
158 }
159
160 Test string with nulls
161 NULL
162 array(1) {
163   ["str"]=>
164   string(34) "A string with containing \0\0\0 nulls"
165 }
166
167 Test string with 2-dim array with numeric keys
168 NULL
169 array(1) {
170   ["arr"]=>
171   array(1) {
172     [3]=>
173     array(2) {
174       [4]=>
175       string(3) "sid"
176       [6]=>
177       string(4) "fred"
178     }
179   }
180 }
181
182 Test string with 2-dim array with null keys
183 NULL
184 array(1) {
185   ["arr"]=>
186   array(2) {
187     [0]=>
188     array(1) {
189       [0]=>
190       string(3) "sid"
191     }
192     [1]=>
193     array(1) {
194       [0]=>
195       string(4) "fred"
196     }
197   }
198 }
199
200 Test string with 2-dim array with non-numeric keys
201 NULL
202 array(1) {
203   ["arr"]=>
204   array(2) {
205     ["one"]=>
206     array(1) {
207       ["four"]=>
208       string(3) "sid"
209     }
210     ["three"]=>
211     array(1) {
212       ["six"]=>
213       string(4) "fred"
214     }
215   }
216 }
217
218 Test string with 3-dim array with numeric keys
219 NULL
220 array(1) {
221   ["arr"]=>
222   array(1) {
223     [1]=>
224     array(1) {
225       [2]=>
226       array(2) {
227         [3]=>
228         string(3) "sid"
229         [6]=>
230         string(4) "fred"
231       }
232     }
233   }
234 }