ID: 45384
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Filesystem function related
Operating System: Ubuntu
PHP Version: 5.3CVS-2008-06-28 (CVS)
New Comment:
This is probably also related to the re2c/YYFILL() scanner issues I
described in Bug #45372.
I assume it's because a variable length rule is matching ("baz" in your
example) when it hits EOF and YYFILL() causes a return/abort. This
(unexpected $end) is more likely to happen with ini parsing, etc. where
it doesn't usually happen with VALID code in a PHP script because the
last thing matched in a typical file is with a fixed length rule (e.g.
"?>" or ";"), and these things only happen with variable length matches
as I explained in the other bug, though they shouldn't with working
scanner code, IMO.
BTW, does putting a space or something other than a newline after baz
allow it to work? Any character that's not allowed in the rule matching
baz should also make it "magically" work. :-)
Previous Comments:
------------------------------------------------------------------------
[2008-06-28 03:05:49] [EMAIL PROTECTED]
Description:
------------
an ini file with no trailing newline will result in "Parse error",
php5.3 only, 5.2 parses the file fine
Reproduce code:
---------------
$ echo -n "foo.bar = baz" > test.ini
$ /opt/php53/bin/php -r 'var_dump(parse_ini_file("test.ini"));'
Expected result:
----------------
array(1) {
["foo.bar"]=>
string(3) "baz"
}
Actual result:
--------------
Warning: syntax error, unexpected $end in test.ini on line 1
in Command line code on line 1
Call Stack:
0.0003 312916 1. {main}() Command line code:0
0.0128 312936 2. parse_ini_file() Command line code:1
array(0) {
}
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45384&edit=1