Annotation of embedaddon/php/ext/standard/tests/file/parse_ini_file.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test parse_ini_file() function
3: --FILE--
4: <?php
5: /* Prototype: array parse_ini_file(string $filename [,bool $process_sections]);
6: Description: parse_ini_file() loads in the ini file specified in filename,
7: and returns the settings in it in an associative array.
8: */
9:
10: $file_path = dirname(__FILE__);
11:
12: $parse_string = <<<EOD
13: ; Comment starts with semi-colon(;)
14: ; Section starts with [<section name>]
15:
16: ; start of ini file
17:
18: [Constans]
19: one = 1
20: five = 5
21: animal = BIRD
22: Language = PHP
23: PHP_CONSTANT = 1.2345678
24: 10 = Ten
25: HELLO = HELLO
26:
27: [date]
28: date =
29: time =
30:
31: [paths]
32: path = /usr/local/bin
33: URL = http://www.php.net
34:
35: [Decimal]
36: Decimal_value1 = 100
37: Decimal_value2 = -100
38: Decimal_value3 = -2147483647
39: Decimal_value4 = 2147483647
40: Decimal_value5 = -2147483648
41: Decimal_value6 = 2147483648
42:
43: [Octal]
44: Octal_value = 0100
45:
46: [Hex]
47: Hex_value1 = 0x101
48: Hex_Value2 = 0x102
49: Hex_Value2 = 0x103
50:
51: [Non-alphanumerics_as_values]
52: ;Non-alpha numeric chars without quotes
53: Non_alpha1 = ;
54: Non_alpha2 = +
55: Non_alpha3 = *
56: Non_alpha4 = %
57: Non_alpha5 = <>
58: Non_alpha6 = @
59: Non_alpha7 = #
60: Non_alpha8 = ^
61: Non_alpha9 = -
62: Non_alpha10 = :
63: Non_alpha11 = ?
64: Non_alpha12 = /
65: Non_alpha13 = \
66: ;These chars have a special meaning when used in the value,
67: ; hence parser throws an error
68: ;Non_alpha14 = &
69: ;Non_alpha15 = {}
70: ;Non_alpha16 = |
71: ;Non_alpha17 = ~
72: ;Non_alpha18 = !
73: ;Non_alpha19 = $
74: ;Non_alpha20 = ()
75:
76: Non_alpha1_quotes = ";"
77: Non_alpha2_quotes = "+"
78: Non_alpha3_quotes = "*"
79: Non_alpha4_quotes = "%"
80: Non_alpha5_quotes = "<>"
81: Non_alpha6_quotes = "@"
82: Non_alpha7_quotes = "#"
83: Non_alpha8_quotes = "^"
84: Non_alpha9_quotes = "-"
85: Non_alpha10_quotes = "="
86: Non_alpha11_quotes = ":"
87: Non_alpha12_quotes = "?"
88: Non_alpha13_quotes = "/"
89: ;Non_alpha14_quotes = "\"
90: Non_alpha15_quotes = "&"
91: Non_alpha16_quotes = "{}"
92: Non_alpha17_quotes = "|"
93: Non_alpha18_quotes = "~"
94: Non_alpha19_quotes = "!"
95: ;Non_alpha20_quotes = "$"
96: Non_alpha21_quotes = "()"
97:
98: [Non-alpha numerics in strings]
99: ;expected error, as the non-alphanumeric chars not enclosed in double quotes("")
100: Non_alpha_string1 = Hello@world
101: ;Non_alpha_string2 = Hello!world
102: ;Non_alpha_string3 = Hello#world
103: ;Non_alpha_string4 = Hello%world
104: ;Non_alpha_string5 = Hello&world
105: ;Non_alpha_string6 = Hello*world
106: ;Non_alpha_string7 = Hello+world
107: ;Non_alpha_string8 = Hello-world
108: ;Non_alpha_string9 = Hello'world
109: ;Non_alpha_string10 = Hello:world
110: ;Non_alpha_string11 = Hello;world
111: ;Non_alpha_string12 = Hello<world
112: ;Non_alpha_string13 = Hello>world
113: ;Non_alpha_string14 = Hello>world
114: ;Non_alpha_string15 = Hello?world
115: ;Non_alpha_string16 = Hello\world
116: ;Non_alpha_string17 = Hello^world
117: ;Non_alpha_string18 = Hello_world
118: ;Non_alpha_string19 = Hello|world
119: ;Non_alpha_string20 = Hello~world
120: ;Non_alpha_string21 = Hello`world
121: ;Non_alpha_string22 = Hello(world)
122:
123: [Non-alpha numerics in strings -with quotes]
124: Non_alpha_string1_quotes = "Hello@world"
125: Non_alpha_string2_quotes = "Hello!world"
126: Non_alpha_string3_quotes = "Hello#world"
127: Non_alpha_string4_quotes = "Hello&world"
128: Non_alpha_string5_quotes = "Hello*world"
129: Non_alpha_string6_quotes = "Hello+world"
130: Non_alpha_string7_quotes = "Hello-world"
131: Non_alpha_string8_quotes = "Hello'world"
132: Non_alpha_string9_quotes = "Hello:world"
133: Non_alpha_string10_quotes = "Hello;world"
134: Non_alpha_string11_quotes = "Hello<world"
135: Non_alpha_string12_quotes = "Hello>world"
136: Non_alpha_string13_quotes = "Hello>world"
137: Non_alpha_string14_quotes = "Hello?world"
138: Non_alpha_string15_quotes = "Hello\world"
139: Non_alpha_string16_quotes = "Hello^world"
140: Non_alpha_string17_quotes = "Hello_world"
141: Non_alpha_string18_quotes = "Hello|world"
142: Non_alpha_string19_quotes = "Hello~world"
143: Non_alpha_string20_quotes = "Hello`world"
144: Non_alpha_string21_quotes = "Hello(world)"
145:
146: [Newlines_in_Values]
147: String1 = "Hello, world\nGood Morning"
148: String2 = "\nHello, world
149: Good Morning\n"
150: String3 = 'Hello, world\tGood Morning'
151: String4 = "\n"
152: String5 = "\n\n"
153: String6 = Hello, world\tGood Morning
154:
155: [ReservedKeys_as_Values]
156: Key1 = YES
157: Key2 = Yes
158: Key3 = yEs
159: Key4 = NO
160: Key5 = No
161: Key6 = nO
162: Key7 = TRUE
163: Key8 = True
164: Key9 = tRUE
165: Key10 = true
166: Key11 = FALSE
167: Key12 = False
168: Key13 = false
169: Key14 = fAlSE
170: Key15 = NULL
171: Key16 = Null
172: Key17 = nuLL
173: Key18 = null
174:
175: [ReservedKeys_as_Keys]
176: ; Expected:error, reserved key words must not be used as keys for ini file
177: ;YES = 1
178: ;Yes = 2
179: ;yEs = 1.2
180: ;YES = YES
181: ;NO = ""
182: ;No = "string"
183: ;nO = "\0"
184: ;TRUE = 1.1
185: ;True = 1
186: ;tRUE = 5
187: ;true = TRUE
188: ;FALSE = FALSE
189: ;False = ""
190: ;false = "hello"
191: ;fAlSE = ""
192: ;NULL = ""
193: ;Null = 0
194: ;nuLL = "\0"
195: ;null = NULL
196:
197: ; end of ini file
198: EOD;
199: /* creating parse.ini file */
200: $file_handle = fopen($file_path."/parse.ini", "w");
201: fwrite($file_handle, $parse_string);
202: fclose($file_handle);
203:
204: echo "*** Test parse_ini_file() function: with various keys and values given in parse.ini file ***\n";
205: echo "-- ini file without process_sections optional arg --\n";
206: define('BIRD', 'Humming bird');
207: $ini_array = parse_ini_file($file_path."/parse.ini");
208: print_r($ini_array);
209:
210: echo "\n-- ini file with process_sections as TRUE --\n";
211: $ini_array = parse_ini_file($file_path."/parse.ini", TRUE);
212: print_r($ini_array);
213:
214: echo "*** Done **\n";
215: ?>
216: --CLEAN--
217: <?php
218: unlink(dirname(__FILE__)."/parse.ini");
219: ?>
220: --EXPECTF--
221: *** Test parse_ini_file() function: with various keys and values given in parse.ini file ***
222: -- ini file without process_sections optional arg --
223: Array
224: (
225: [one] => 1
226: [five] => 5
227: [animal] => Humming bird
228: [Language] => PHP
229: [PHP_CONSTANT] => 1.2345678
230: [10] => Ten
231: [HELLO] => HELLO
232: [date] =>
233: [time] =>
234: [path] => /usr/local/bin
235: [URL] => http://www.php.net
236: [Decimal_value1] => 100
237: [Decimal_value2] => -100
238: [Decimal_value3] => -2147483647
239: [Decimal_value4] => 2147483647
240: [Decimal_value5] => -2147483648
241: [Decimal_value6] => 2147483648
242: [Octal_value] => 0100
243: [Hex_value1] => 0x101
244: [Hex_Value2] => 0x103
245: [Non_alpha1] =>
246: [Non_alpha2] => +
247: [Non_alpha3] => *
248: [Non_alpha4] => %
249: [Non_alpha5] => <>
250: [Non_alpha6] => @
251: [Non_alpha7] => #
252: [Non_alpha8] => ^
253: [Non_alpha9] => -
254: [Non_alpha10] => :
255: [Non_alpha11] => ?
256: [Non_alpha12] => /
257: [Non_alpha13] => \
258: [Non_alpha1_quotes] => ;
259: [Non_alpha2_quotes] => +
260: [Non_alpha3_quotes] => *
261: [Non_alpha4_quotes] => %
262: [Non_alpha5_quotes] => <>
263: [Non_alpha6_quotes] => @
264: [Non_alpha7_quotes] => #
265: [Non_alpha8_quotes] => ^
266: [Non_alpha9_quotes] => -
267: [Non_alpha10_quotes] => =
268: [Non_alpha11_quotes] => :
269: [Non_alpha12_quotes] => ?
270: [Non_alpha13_quotes] => /
271: [Non_alpha15_quotes] => &
272: [Non_alpha16_quotes] => {}
273: [Non_alpha17_quotes] => |
274: [Non_alpha18_quotes] => ~
275: [Non_alpha19_quotes] => !
276: [Non_alpha21_quotes] => ()
277: [Non_alpha_string1] => Hello@world
278: [Non_alpha_string1_quotes] => Hello@world
279: [Non_alpha_string2_quotes] => Hello!world
280: [Non_alpha_string3_quotes] => Hello#world
281: [Non_alpha_string4_quotes] => Hello&world
282: [Non_alpha_string5_quotes] => Hello*world
283: [Non_alpha_string6_quotes] => Hello+world
284: [Non_alpha_string7_quotes] => Hello-world
285: [Non_alpha_string8_quotes] => Hello'world
286: [Non_alpha_string9_quotes] => Hello:world
287: [Non_alpha_string10_quotes] => Hello;world
288: [Non_alpha_string11_quotes] => Hello<world
289: [Non_alpha_string12_quotes] => Hello>world
290: [Non_alpha_string13_quotes] => Hello>world
291: [Non_alpha_string14_quotes] => Hello?world
292: [Non_alpha_string15_quotes] => Hello\world
293: [Non_alpha_string16_quotes] => Hello^world
294: [Non_alpha_string17_quotes] => Hello_world
295: [Non_alpha_string18_quotes] => Hello|world
296: [Non_alpha_string19_quotes] => Hello~world
297: [Non_alpha_string20_quotes] => Hello`world
298: [Non_alpha_string21_quotes] => Hello(world)
299: [String1] => Hello, world
300: Good Morning
301: [String2] =>
302: Hello, world
303: Good Morning
304:
305: [String3] => Hello, world Good Morning
306: [String4] =>
307:
308: [String5] =>
309:
310:
311: [String6] => Hello, world Good Morning
312: [Key1] => 1
313: [Key2] => 1
314: [Key3] => 1
315: [Key4] =>
316: [Key5] =>
317: [Key6] =>
318: [Key7] => 1
319: [Key8] => 1
320: [Key9] => 1
321: [Key10] => 1
322: [Key11] =>
323: [Key12] =>
324: [Key13] =>
325: [Key14] =>
326: [Key15] =>
327: [Key16] =>
328: [Key17] =>
329: [Key18] =>
330: )
331:
332: -- ini file with process_sections as TRUE --
333: Array
334: (
335: [Constans] => Array
336: (
337: [one] => 1
338: [five] => 5
339: [animal] => Humming bird
340: [Language] => PHP
341: [PHP_CONSTANT] => 1.2345678
342: [10] => Ten
343: [HELLO] => HELLO
344: )
345:
346: [date] => Array
347: (
348: [date] =>
349: [time] =>
350: )
351:
352: [paths] => Array
353: (
354: [path] => /usr/local/bin
355: [URL] => http://www.php.net
356: )
357:
358: [Decimal] => Array
359: (
360: [Decimal_value1] => 100
361: [Decimal_value2] => -100
362: [Decimal_value3] => -2147483647
363: [Decimal_value4] => 2147483647
364: [Decimal_value5] => -2147483648
365: [Decimal_value6] => 2147483648
366: )
367:
368: [Octal] => Array
369: (
370: [Octal_value] => 0100
371: )
372:
373: [Hex] => Array
374: (
375: [Hex_value1] => 0x101
376: [Hex_Value2] => 0x103
377: )
378:
379: [Non-alphanumerics_as_values] => Array
380: (
381: [Non_alpha1] =>
382: [Non_alpha2] => +
383: [Non_alpha3] => *
384: [Non_alpha4] => %
385: [Non_alpha5] => <>
386: [Non_alpha6] => @
387: [Non_alpha7] => #
388: [Non_alpha8] => ^
389: [Non_alpha9] => -
390: [Non_alpha10] => :
391: [Non_alpha11] => ?
392: [Non_alpha12] => /
393: [Non_alpha13] => \
394: [Non_alpha1_quotes] => ;
395: [Non_alpha2_quotes] => +
396: [Non_alpha3_quotes] => *
397: [Non_alpha4_quotes] => %
398: [Non_alpha5_quotes] => <>
399: [Non_alpha6_quotes] => @
400: [Non_alpha7_quotes] => #
401: [Non_alpha8_quotes] => ^
402: [Non_alpha9_quotes] => -
403: [Non_alpha10_quotes] => =
404: [Non_alpha11_quotes] => :
405: [Non_alpha12_quotes] => ?
406: [Non_alpha13_quotes] => /
407: [Non_alpha15_quotes] => &
408: [Non_alpha16_quotes] => {}
409: [Non_alpha17_quotes] => |
410: [Non_alpha18_quotes] => ~
411: [Non_alpha19_quotes] => !
412: [Non_alpha21_quotes] => ()
413: )
414:
415: [Non-alpha numerics in strings] => Array
416: (
417: [Non_alpha_string1] => Hello@world
418: )
419:
420: [Non-alpha numerics in strings -with quotes] => Array
421: (
422: [Non_alpha_string1_quotes] => Hello@world
423: [Non_alpha_string2_quotes] => Hello!world
424: [Non_alpha_string3_quotes] => Hello#world
425: [Non_alpha_string4_quotes] => Hello&world
426: [Non_alpha_string5_quotes] => Hello*world
427: [Non_alpha_string6_quotes] => Hello+world
428: [Non_alpha_string7_quotes] => Hello-world
429: [Non_alpha_string8_quotes] => Hello'world
430: [Non_alpha_string9_quotes] => Hello:world
431: [Non_alpha_string10_quotes] => Hello;world
432: [Non_alpha_string11_quotes] => Hello<world
433: [Non_alpha_string12_quotes] => Hello>world
434: [Non_alpha_string13_quotes] => Hello>world
435: [Non_alpha_string14_quotes] => Hello?world
436: [Non_alpha_string15_quotes] => Hello\world
437: [Non_alpha_string16_quotes] => Hello^world
438: [Non_alpha_string17_quotes] => Hello_world
439: [Non_alpha_string18_quotes] => Hello|world
440: [Non_alpha_string19_quotes] => Hello~world
441: [Non_alpha_string20_quotes] => Hello`world
442: [Non_alpha_string21_quotes] => Hello(world)
443: )
444:
445: [Newlines_in_Values] => Array
446: (
447: [String1] => Hello, world
448: Good Morning
449: [String2] =>
450: Hello, world
451: Good Morning
452:
453: [String3] => Hello, world Good Morning
454: [String4] =>
455:
456: [String5] =>
457:
458:
459: [String6] => Hello, world Good Morning
460: )
461:
462: [ReservedKeys_as_Values] => Array
463: (
464: [Key1] => 1
465: [Key2] => 1
466: [Key3] => 1
467: [Key4] =>
468: [Key5] =>
469: [Key6] =>
470: [Key7] => 1
471: [Key8] => 1
472: [Key9] => 1
473: [Key10] => 1
474: [Key11] =>
475: [Key12] =>
476: [Key13] =>
477: [Key14] =>
478: [Key15] =>
479: [Key16] =>
480: [Key17] =>
481: [Key18] =>
482: )
483:
484: [ReservedKeys_as_Keys] => Array
485: (
486: )
487:
488: )
489: *** Done **
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>