1 changed files with 491 additions and 0 deletions
@ -0,0 +1,491 @@ |
|||
--TEST-- |
|||
Test parse_ini_file() function |
|||
--FILE-- |
|||
<?php |
|||
/* Prototype: array parse_ini_file(string $filename [,bool $process_sections]); |
|||
Description: parse_ini_file() loads in the ini file specified in filename, |
|||
and returns the settings in it in an associative array. |
|||
*/ |
|||
|
|||
$file_path = dirname(__FILE__); |
|||
|
|||
$parse_string = <<<EOD |
|||
; Comment starts with semi-colon(;) |
|||
; Section starts with [<section name>] |
|||
|
|||
; start of ini file |
|||
|
|||
[Constans] |
|||
one = 1 |
|||
five = 5 |
|||
animal = BIRD |
|||
Language = PHP |
|||
PHP_CONSTANT = 1.2345678 |
|||
10 = Ten |
|||
HELLO = HELLO |
|||
|
|||
[date] |
|||
date = |
|||
time = |
|||
|
|||
[paths] |
|||
path = /usr/local/bin |
|||
URL = http://www.php.net |
|||
|
|||
[Decimal] |
|||
Decimal_value1 = 100 |
|||
Decimal_value2 = -100 |
|||
Decimal_value3 = -2147483647 |
|||
Decimal_value4 = 2147483647 |
|||
Decimal_value5 = -2147483648 |
|||
Decimal_value6 = 2147483648 |
|||
|
|||
[Octal] |
|||
Octal_value = 0100 |
|||
|
|||
[Hex] |
|||
Hex_value1 = 0x101 |
|||
Hex_Value2 = 0x102 |
|||
Hex_Value2 = 0x103 |
|||
|
|||
[Non-alphanumerics_as_values] |
|||
;Non-alpha numeric chars without quotes |
|||
Non-alpha1 = ; |
|||
Non-alpha2 = + |
|||
Non-alpha3 = * |
|||
Non-alpha4 = % |
|||
Non-alpha5 = <> |
|||
Non-alpha6 = @ |
|||
Non-alpha7 = # |
|||
Non-alpha8 = ^ |
|||
non-alpha9 = - |
|||
Non-alpha10 = : |
|||
Non-alpha11 = ? |
|||
Non-alpha12 = / |
|||
Non-alpha13 = \ |
|||
;These chars have a special meaning when used in the value, |
|||
; hence parser throws an error |
|||
;Non-alpha14 = & |
|||
;Non-alpha15 = {} |
|||
;Non-alpha16 = | |
|||
;Non-alpha17 = ~ |
|||
;Non-alpha18 = ! |
|||
;Non-alpha19 = $ |
|||
;Non-alpha20 = () |
|||
|
|||
Non-alpha1_quotes = ";" |
|||
Non-alpha2_quotes = "+" |
|||
Non-alpha3_quotes = "*" |
|||
Non-alpha4_quotes = "%" |
|||
Non-alpha5_quotes = "<>" |
|||
Non-alpha6_quotes = "@" |
|||
Non-alpha7_quotes = "#" |
|||
Non-alpha8_quotes = "^" |
|||
Non-alpha9_quotes = "-" |
|||
Non-alpha10_quotes = "=" |
|||
Non-alpha11_quotes = ":" |
|||
Non-alpha12_quotes = "?" |
|||
Non-alpha13_quotes = "/" |
|||
Non-alpha14_quotes = "\" |
|||
Non-alpha15_quotes = "&" |
|||
Non-alpha16_quotes = "{}" |
|||
Non-alpha17_quotes = "|" |
|||
Non-alpha18_quotes = "~" |
|||
Non-alpha19_quotes = "!" |
|||
non-alpha20_quotes = "$" |
|||
non-alpha21_quotes = "()" |
|||
|
|||
[Non-alpha numerics in strings] |
|||
;expected error, as the non-alphanumeric chars not enclosed in double quotes("") |
|||
Non-alpha_string1 = Hello@world |
|||
;Non-alpha_string2 = Hello!world |
|||
;Non-alpha_string3 = Hello#world |
|||
;Non-alpha_string4 = Hello%world |
|||
;Non-alpha_string5 = Hello&world |
|||
;Non-alpha_string6 = Hello*world |
|||
;Non-alpha_string7 = Hello+world |
|||
;Non-alpha_string8 = Hello-world |
|||
;Non-alpha_string9 = Hello'world |
|||
;Non-alpha_string10 = Hello:world |
|||
;Non-alpha_string11 = Hello;world |
|||
;Non-alpha_string12 = Hello<world |
|||
;Non-alpha_string13 = Hello>world |
|||
;Non-alpha_string14 = Hello>world |
|||
;Non-alpha_string15 = Hello?world |
|||
;Non-alpha_string16 = Hello\world |
|||
;Non-alpha_string17 = Hello^world |
|||
;Non-alpha_string18 = Hello_world |
|||
;Non-alpha_string19 = Hello|world |
|||
;Non-alpha_string20 = Hello~world |
|||
;Non-alpha_string21 = Hello`world |
|||
;Non-alpha_string22 = Hello(world) |
|||
|
|||
[Non-alpha numerics in strings -with quotes] |
|||
Non-alpha_string1_quotes = "Hello@world" |
|||
Non-alpha_string2_quotes = "Hello!world" |
|||
Non-alpha_string3_quotes = "Hello#world" |
|||
Non-alpha_string4_quotes = "Hello&world" |
|||
Non-alpha_string5_quotes = "Hello*world" |
|||
Non-alpha_string6_quotes = "Hello+world" |
|||
Non-alpha_string7_quotes = "Hello-world" |
|||
Non-alpha_string8_quotes = "Hello'world" |
|||
Non-alpha_string9_quotes = "Hello:world" |
|||
Non-alpha_string10_quotes = "Hello;world" |
|||
Non-alpha_string11_quotes = "Hello<world" |
|||
Non-alpha_string12_quotes = "Hello>world" |
|||
Non-alpha_string13_quotes = "Hello>world" |
|||
Non-alpha_string14_quotes = "Hello?world" |
|||
Non-alpha_string15_quotes = "Hello\world" |
|||
Non-alpha_string16_quotes = "Hello^world" |
|||
Non-alpha_string17_quotes = "Hello_world" |
|||
Non-alpha_string18_quotes = "Hello|world" |
|||
Non-alpha_string19_quotes = "Hello~world" |
|||
Non-alpha_string20_quotes = "Hello`world" |
|||
Non-alpha_string21_quotes = "Hello(world)" |
|||
|
|||
[Newlines_in_Values] |
|||
String1 = "Hello, world\nGood Morning" |
|||
String2 = "\nHello, world |
|||
Good Morning\n" |
|||
String3 = 'Hello, world\tGood Morning' |
|||
String4 = "\n" |
|||
String5 = "\n\n" |
|||
String3 = Hello, world\tGood Morning |
|||
|
|||
[ReservedKeys_as_Values] |
|||
Key1 = YES |
|||
Key2 = Yes |
|||
Key3 = yEs |
|||
Key4 = NO |
|||
Key5 = No |
|||
Key6 = nO |
|||
Key7 = TRUE |
|||
Key8 = True |
|||
Key9 = tRUE |
|||
Key10 = true |
|||
Key11 = FALSE |
|||
Key12 = False |
|||
Key13 = false |
|||
Key14 = fAlSE |
|||
Key15 = NULL |
|||
Key16 = Null |
|||
Key17 = nuLL |
|||
Key18 = null |
|||
|
|||
[ReservedKeys_as_Keys] |
|||
; Expected:error, reserved key words must not be used as keys for ini file |
|||
;YES = 1 |
|||
;Yes = 2 |
|||
;yEs = 1.2 |
|||
;YES = YES |
|||
;NO = "" |
|||
;No = "string" |
|||
;nO = "\0" |
|||
;TRUE = 1.1 |
|||
;True = 1 |
|||
;tRUE = 5 |
|||
;true = TRUE |
|||
;FALSE = FALSE |
|||
;False = "" |
|||
;false = "hello" |
|||
;fAlSE = "" |
|||
;NULL = "" |
|||
;Null = 0 |
|||
;nuLL = "\0" |
|||
;null = NULL |
|||
|
|||
; end of ini file |
|||
EOD; |
|||
/* creating parse.ini file */ |
|||
$file_handle = fopen($file_path."/parse.ini", "w"); |
|||
fwrite($file_handle, $parse_string); |
|||
fclose($file_handle); |
|||
|
|||
echo "*** Test parse_ini_file() function: with various keys and values given in parse.ini file ***\n"; |
|||
echo "-- ini file without process_sections optional arg --\n"; |
|||
define('BIRD', 'Humming bird'); |
|||
$ini_array = parse_ini_file($file_path."/parse.ini"); |
|||
print_r($ini_array); |
|||
|
|||
echo "\n-- ini file with process_sections as TRUE --\n"; |
|||
$ini_array = parse_ini_file($file_path."/parse.ini", TRUE); |
|||
print_r($ini_array); |
|||
|
|||
echo "*** Done **\n"; |
|||
?> |
|||
--CLEAN-- |
|||
<?php |
|||
unlink(dirname(__FILE__)."/parse.ini"); |
|||
?> |
|||
--EXPECTF-- |
|||
*** Test parse_ini_file() function: with various keys and values given in parse.ini file *** |
|||
-- ini file without process_sections optional arg -- |
|||
Array |
|||
( |
|||
[one] => 1 |
|||
[five] => 5 |
|||
[animal] => Humming bird |
|||
[Language] => PHP |
|||
[PHP_CONSTANT] => 1.2345678 |
|||
[10] => Ten |
|||
[HELLO] => HELLO |
|||
[date] => |
|||
[time] => |
|||
[path] => /usr/local/bin |
|||
[URL] => http://www.php.net |
|||
[Decimal_value1] => 100 |
|||
[Decimal_value2] => -100 |
|||
[Decimal_value3] => -2147483647 |
|||
[Decimal_value4] => 2147483647 |
|||
[Decimal_value5] => -2147483648 |
|||
[Decimal_value6] => 2147483648 |
|||
[Octal_value] => 0100 |
|||
[Hex_value1] => 0x101 |
|||
[Hex_Value2] => 0x103 |
|||
[Non-alpha1] => |
|||
[Non-alpha2] => + |
|||
[Non-alpha3] => * |
|||
[Non-alpha4] => % |
|||
[Non-alpha5] => <> |
|||
[Non-alpha6] => @ |
|||
[Non-alpha7] => # |
|||
[Non-alpha8] => ^ |
|||
[non-alpha9] => - |
|||
[Non-alpha10] => : |
|||
[Non-alpha11] => ? |
|||
[Non-alpha12] => / |
|||
[Non-alpha13] => \ |
|||
[Non-alpha1_quotes] => ; |
|||
[Non-alpha2_quotes] => + |
|||
[Non-alpha3_quotes] => * |
|||
[Non-alpha4_quotes] => % |
|||
[Non-alpha5_quotes] => <> |
|||
[Non-alpha6_quotes] => @ |
|||
[Non-alpha7_quotes] => # |
|||
[Non-alpha8_quotes] => ^ |
|||
[Non-alpha9_quotes] => - |
|||
[Non-alpha10_quotes] => = |
|||
[Non-alpha11_quotes] => : |
|||
[Non-alpha12_quotes] => ? |
|||
[Non-alpha13_quotes] => / |
|||
[Non-alpha14_quotes] => \ |
|||
[Non-alpha15_quotes] => & |
|||
[Non-alpha16_quotes] => {} |
|||
[Non-alpha17_quotes] => | |
|||
[Non-alpha18_quotes] => ~ |
|||
[Non-alpha19_quotes] => ! |
|||
[non-alpha20_quotes] => $ |
|||
[non-alpha21_quotes] => () |
|||
[Non-alpha_string1] => Hello@world |
|||
[Non-alpha_string1_quotes] => Hello@world |
|||
[Non-alpha_string2_quotes] => Hello!world |
|||
[Non-alpha_string3_quotes] => Hello#world |
|||
[Non-alpha_string4_quotes] => Hello&world |
|||
[Non-alpha_string5_quotes] => Hello*world |
|||
[Non-alpha_string6_quotes] => Hello+world |
|||
[Non-alpha_string7_quotes] => Hello-world |
|||
[Non-alpha_string8_quotes] => Hello'world |
|||
[Non-alpha_string9_quotes] => Hello:world |
|||
[Non-alpha_string10_quotes] => Hello;world |
|||
[Non-alpha_string11_quotes] => Hello<world |
|||
[Non-alpha_string12_quotes] => Hello>world |
|||
[Non-alpha_string13_quotes] => Hello>world |
|||
[Non-alpha_string14_quotes] => Hello?world |
|||
[Non-alpha_string15_quotes] => Hello\world |
|||
[Non-alpha_string16_quotes] => Hello^world |
|||
[Non-alpha_string17_quotes] => Hello_world |
|||
[Non-alpha_string18_quotes] => Hello|world |
|||
[Non-alpha_string19_quotes] => Hello~world |
|||
[Non-alpha_string20_quotes] => Hello`world |
|||
[Non-alpha_string21_quotes] => Hello(world) |
|||
[String1] => Hello, world |
|||
Good Morning |
|||
[String2] => |
|||
Hello, world |
|||
Good Morning |
|||
|
|||
[String3] => Hello, worldGood Morning |
|||
[String4] => |
|||
|
|||
[String5] => |
|||
|
|||
|
|||
[Key1] => 1 |
|||
[Key2] => 1 |
|||
[Key3] => 1 |
|||
[Key4] => |
|||
[Key5] => |
|||
[Key6] => |
|||
[Key7] => 1 |
|||
[Key8] => 1 |
|||
[Key9] => 1 |
|||
[Key10] => 1 |
|||
[Key11] => |
|||
[Key12] => |
|||
[Key13] => |
|||
[Key14] => |
|||
[Key15] => |
|||
[Key16] => |
|||
[Key17] => |
|||
[Key18] => |
|||
) |
|||
|
|||
-- ini file with process_sections as TRUE -- |
|||
Array |
|||
( |
|||
[Constans] => Array |
|||
( |
|||
[one] => 1 |
|||
[five] => 5 |
|||
[animal] => Humming bird |
|||
[Language] => PHP |
|||
[PHP_CONSTANT] => 1.2345678 |
|||
[10] => Ten |
|||
[HELLO] => HELLO |
|||
) |
|||
|
|||
[date] => Array |
|||
( |
|||
[date] => |
|||
[time] => |
|||
) |
|||
|
|||
[paths] => Array |
|||
( |
|||
[path] => /usr/local/bin |
|||
[URL] => http://www.php.net |
|||
) |
|||
|
|||
[Decimal] => Array |
|||
( |
|||
[Decimal_value1] => 100 |
|||
[Decimal_value2] => -100 |
|||
[Decimal_value3] => -2147483647 |
|||
[Decimal_value4] => 2147483647 |
|||
[Decimal_value5] => -2147483648 |
|||
[Decimal_value6] => 2147483648 |
|||
) |
|||
|
|||
[Octal] => Array |
|||
( |
|||
[Octal_value] => 0100 |
|||
) |
|||
|
|||
[Hex] => Array |
|||
( |
|||
[Hex_value1] => 0x101 |
|||
[Hex_Value2] => 0x103 |
|||
) |
|||
|
|||
[Non-alphanumerics_as_values] => Array |
|||
( |
|||
[Non-alpha1] => |
|||
[Non-alpha2] => + |
|||
[Non-alpha3] => * |
|||
[Non-alpha4] => % |
|||
[Non-alpha5] => <> |
|||
[Non-alpha6] => @ |
|||
[Non-alpha7] => # |
|||
[Non-alpha8] => ^ |
|||
[non-alpha9] => - |
|||
[Non-alpha10] => : |
|||
[Non-alpha11] => ? |
|||
[Non-alpha12] => / |
|||
[Non-alpha13] => \ |
|||
[Non-alpha1_quotes] => ; |
|||
[Non-alpha2_quotes] => + |
|||
[Non-alpha3_quotes] => * |
|||
[Non-alpha4_quotes] => % |
|||
[Non-alpha5_quotes] => <> |
|||
[Non-alpha6_quotes] => @ |
|||
[Non-alpha7_quotes] => # |
|||
[Non-alpha8_quotes] => ^ |
|||
[Non-alpha9_quotes] => - |
|||
[Non-alpha10_quotes] => = |
|||
[Non-alpha11_quotes] => : |
|||
[Non-alpha12_quotes] => ? |
|||
[Non-alpha13_quotes] => / |
|||
[Non-alpha14_quotes] => \ |
|||
[Non-alpha15_quotes] => & |
|||
[Non-alpha16_quotes] => {} |
|||
[Non-alpha17_quotes] => | |
|||
[Non-alpha18_quotes] => ~ |
|||
[Non-alpha19_quotes] => ! |
|||
[non-alpha20_quotes] => $ |
|||
[non-alpha21_quotes] => () |
|||
) |
|||
|
|||
[Non-alpha numerics in strings] => Array |
|||
( |
|||
[Non-alpha_string1] => Hello@world |
|||
) |
|||
|
|||
[Non-alpha numerics in strings -with quotes] => Array |
|||
( |
|||
[Non-alpha_string1_quotes] => Hello@world |
|||
[Non-alpha_string2_quotes] => Hello!world |
|||
[Non-alpha_string3_quotes] => Hello#world |
|||
[Non-alpha_string4_quotes] => Hello&world |
|||
[Non-alpha_string5_quotes] => Hello*world |
|||
[Non-alpha_string6_quotes] => Hello+world |
|||
[Non-alpha_string7_quotes] => Hello-world |
|||
[Non-alpha_string8_quotes] => Hello'world |
|||
[Non-alpha_string9_quotes] => Hello:world |
|||
[Non-alpha_string10_quotes] => Hello;world |
|||
[Non-alpha_string11_quotes] => Hello<world |
|||
[Non-alpha_string12_quotes] => Hello>world |
|||
[Non-alpha_string13_quotes] => Hello>world |
|||
[Non-alpha_string14_quotes] => Hello?world |
|||
[Non-alpha_string15_quotes] => Hello\world |
|||
[Non-alpha_string16_quotes] => Hello^world |
|||
[Non-alpha_string17_quotes] => Hello_world |
|||
[Non-alpha_string18_quotes] => Hello|world |
|||
[Non-alpha_string19_quotes] => Hello~world |
|||
[Non-alpha_string20_quotes] => Hello`world |
|||
[Non-alpha_string21_quotes] => Hello(world) |
|||
) |
|||
|
|||
[Newlines_in_Values] => Array |
|||
( |
|||
[String1] => Hello, world |
|||
Good Morning |
|||
[String2] => |
|||
Hello, world |
|||
Good Morning |
|||
|
|||
[String3] => Hello, worldGood Morning |
|||
[String4] => |
|||
|
|||
[String5] => |
|||
|
|||
|
|||
) |
|||
|
|||
[ReservedKeys_as_Values] => Array |
|||
( |
|||
[Key1] => 1 |
|||
[Key2] => 1 |
|||
[Key3] => 1 |
|||
[Key4] => |
|||
[Key5] => |
|||
[Key6] => |
|||
[Key7] => 1 |
|||
[Key8] => 1 |
|||
[Key9] => 1 |
|||
[Key10] => 1 |
|||
[Key11] => |
|||
[Key12] => |
|||
[Key13] => |
|||
[Key14] => |
|||
[Key15] => |
|||
[Key16] => |
|||
[Key17] => |
|||
[Key18] => |
|||
) |
|||
|
|||
[ReservedKeys_as_Keys] => Array |
|||
( |
|||
) |
|||
|
|||
) |
|||
*** Done ** |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue