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