ID: 44019
User updated by: petr at hroch dot info
Reported By: petr at hroch dot info
-Status: Feedback
+Status: Open
Bug Type: Filesystem function related
Operating System: *
PHP Version: 5.3CVS-2008-02-01 (snap)
New Comment:
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
Previous Comments:
------------------------------------------------------------------------
[2008-02-02 20:22:34] [EMAIL PROTECTED]
Where did you get the idea that that should work in the first place?
The correct way:
foo="{$FOO}barian"
------------------------------------------------------------------------
[2008-02-01 23:15:50] 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 ( )
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44019&edit=1