1--TEST--
2parse_ini_file() multiple calls
3--FILE--
4<?php
5
6$filename = __DIR__."/parse_ini_file.dat";
7@unlink($filename); /* Make sure the file really does not exist! */
8
9var_dump(parse_ini_file());
10var_dump(parse_ini_file(1,1,1,1));
11var_dump(parse_ini_file($filename));
12var_dump(parse_ini_file($filename, true));
13
14$ini = "
15test =
16";
17file_put_contents($filename, $ini);
18var_dump(parse_ini_file($filename));
19$ini = "
20test==
21";
22file_put_contents($filename, $ini);
23var_dump(parse_ini_file($filename));
24
25$ini = "
26test=test=
27";
28file_put_contents($filename, $ini);
29var_dump(parse_ini_file($filename));
30
31$ini = "
32test= \"new
33line\"
34";
35file_put_contents($filename, $ini);
36var_dump(parse_ini_file($filename));
37
38define("TEST_CONST", "test const value");
39$ini = "
40test=TEST_CONST
41";
42file_put_contents($filename, $ini);
43var_dump(parse_ini_file($filename));
44
45$ini = "
46[section]
47test=hello
48";
49file_put_contents($filename, $ini);
50var_dump(parse_ini_file($filename, true));
51
52$ini = "
53[section]
54test=hello
55";
56file_put_contents($filename, $ini);
57var_dump(parse_ini_file($filename, false));
58
59$ini = "
60section.test=hello
61";
62file_put_contents($filename, $ini);
63var_dump(parse_ini_file($filename, true));
64
65$ini = "
66[section]
67section.test=hello
68";
69file_put_contents($filename, $ini);
70var_dump(parse_ini_file($filename, true));
71
72$ini = "
73[section]
741=2
75";
76file_put_contents($filename, $ini);
77var_dump(parse_ini_file($filename, true));
78
79$ini = "
801=2
81";
82file_put_contents($filename, $ini);
83var_dump(parse_ini_file($filename, true));
84$ini = "
85test=test2
86test=test3
87test=test4
88";
89file_put_contents($filename, $ini);
90var_dump(parse_ini_file($filename, true));
91
92/* From bug #44574 */
93$ini = "[section1]\nname = value";
94file_put_contents($filename, $ini);
95var_dump(parse_ini_file($filename, true));
96
97/* #44842, labels starting with underscore */
98$ini = <<<'INI'
99foo=bar1
100_foo=bar2
101foo_=bar3
102INI;
103file_put_contents($filename, $ini);
104var_dump(parse_ini_file($filename, true));
105
106/* #44575, comments starting with '#' */
107$ini = <<<'INI'
108foo=bar1
109; comment
110_foo=bar2
111; comment
112foo_=bar3
113INI;
114file_put_contents($filename, $ini);
115var_dump(parse_ini_file($filename, true));
116
117
118@unlink($filename);
119echo "Done\n";
120?>
121--EXPECTF--
122Warning: parse_ini_file() expects at least 1 parameter, 0 given in %sparse_ini_file.php on line 6
123bool(false)
124
125Warning: parse_ini_file() expects at most 3 parameters, 4 given in %sparse_ini_file.php on line 7
126bool(false)
127
128Warning: parse_ini_file(%sparse_ini_file.dat): failed to open stream: No such file or directory in %sparse_ini_file.php on line 8
129bool(false)
130
131Warning: parse_ini_file(%sparse_ini_file.dat): failed to open stream: No such file or directory in %sparse_ini_file.php on line 9
132bool(false)
133array(1) {
134  ["test"]=>
135  string(0) ""
136}
137
138Warning: syntax error, unexpected '='%sparse_ini_file.dat on line 2
139 in %sparse_ini_file.php on line 20
140bool(false)
141
142Warning: syntax error, unexpected '='%sparse_ini_file.dat on line 2
143 in %sparse_ini_file.php on line 26
144bool(false)
145array(1) {
146  ["test"]=>
147  string(8) "new
148line"
149}
150array(1) {
151  ["test"]=>
152  string(16) "test const value"
153}
154array(1) {
155  ["section"]=>
156  array(1) {
157    ["test"]=>
158    string(5) "hello"
159  }
160}
161array(1) {
162  ["test"]=>
163  string(5) "hello"
164}
165array(1) {
166  ["section.test"]=>
167  string(5) "hello"
168}
169array(1) {
170  ["section"]=>
171  array(1) {
172    ["section.test"]=>
173    string(5) "hello"
174  }
175}
176array(1) {
177  ["section"]=>
178  array(1) {
179    [1]=>
180    string(1) "2"
181  }
182}
183array(1) {
184  [1]=>
185  string(1) "2"
186}
187array(1) {
188  ["test"]=>
189  string(5) "test4"
190}
191array(1) {
192  ["section1"]=>
193  array(1) {
194    ["name"]=>
195    string(5) "value"
196  }
197}
198array(3) {
199  ["foo"]=>
200  string(4) "bar1"
201  ["_foo"]=>
202  string(4) "bar2"
203  ["foo_"]=>
204  string(4) "bar3"
205}
206array(3) {
207  ["foo"]=>
208  string(4) "bar1"
209  ["_foo"]=>
210  string(4) "bar2"
211  ["foo_"]=>
212  string(4) "bar3"
213}
214Done
215