|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2008-02-01 23:15 UTC] petr at hroch dot info
Description: ------------ Quoted strings in parse_ini_file function are not handled properly Tested on Windows XP SP2 php5.3-dev running as apache 2.2.6 module possibly not working on the other operation systems I've searched the web and I've found the same problem already described php6.0-dev snapshot http://groups.google.pl/group/mailing.www.php-dev/msg/e5b4b179d4d3ce15 Reproduce code: --------------- Ini file test.ini content: -------------------------- [Topic] number=1 string="test" foo=FOO"barian" PHP code test.php: ------------------ <? define("FOO","bar"); print_r(parse_ini_file("test.ini",true)); ?> Expected result: ---------------- Array ( [Topic] => Array ( [number] => 1 [string] => test [foo] => barbarian ) ) Actual result: -------------- Warning: syntax error, unexpected TC_QUOTED_STRING in test.ini on line 3 in D:\htdocs\test.php on line 3 Array ( ) PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Dec 05 07:00:01 2025 UTC |
Where did you get the idea that that should work in the first place? The correct way: foo="{$FOO}barian"Hello Jani, Before I've submited this bug, I've tested this feature in php-5.2.5 where line foo=FOO"barian" returns [foo] => barbarian so it works gracefully, in php5.3-dev it doesn't. In my example FOO is a constant defined before parse_ini_file function. In your example $FOO is undefined global variable isn't it? Anyway changing ini file using your way doesn't work as expected, even if there's no $FOO definition I should be expecting that foo="{$FOO}barian" returns [foo] => barian not [foo] => FOO}barian modified Test.ini using Jani's solution ------------------------------------- [Topic] number=1 string="test" foo="{$FOO}barian" PHP code: -------- <? define("FOO","bar"); print_r(parse_ini_file("test.ini",true)); ?> Expected result: ---------------- Array ( [Topic] => Array ( [number] => 1 [string] => test [foo] => barbarian ) ) Actual Result: -------------- Array ( [Topic] => Array ( [number] => 1 [string] => test [foo] => FOO}barian ) ) I Hope it helps. Best regards Petr