Edit report at https://bugs.php.net/bug.php?id=62884&edit=1
ID: 62884
User updated by: fidian at rumkin dot com
Reported by: fidian at rumkin dot com
Summary: parse_ini_file() results changed in 5.3.15
Status: Open
Type: Bug
Package: Unknown/Other Function
Operating System: Ubuntu Linus 12.04
PHP Version: 5.3Git-2012-08-21 (Git)
Block user comment: N
Private report: N
New Comment:
For clarification, what Microsoft says is
If the string associated with lpKeyName is enclosed in single or double
quotation marks, the marks are discarded when the GetPrivateProfileString
function retrieves the string.
This leads me to believe that it merely checks if the first and last character
match and if they are a " or ' and then would remove both the first and last
character.
Previous Comments:
------------------------------------------------------------------------
[2012-08-21 23:48:41] fidian at rumkin dot com
Description:
------------
Given an INI file that looks like this
ini = "a"b"
and when you use parse_ini_file with INI_SCANNER_RAW, PHP used to return this
as
array('ini' => 'a"b') and now returns it as array('ini' => 'ab"'). This does
not appear to match with Microsoft's GetPrivateProfileString
(http://msdn.microsoft.com/en-us/library/ms724353(VS.85).aspx) where they say
that values which are quoted with either single or double quotes are simply
unquoted. My expected behavior would be to mirror the Microsoft parser,
especially when in raw mode.
Note: I am not talking about changing INI_SCANNER_NORMAL, just the raw mode so
I can get the unparsed values.
According to git-bisect, commit 4e6f27f4db6121e67f17906b27cc829120738b71 is the
culprit, but I suspect that the fix for bug 51094 is really to blame.
Test script:
---------------
<?php
error_reporting(0);
$result = parse_ini_string('ini = "a"b"', false, INI_SCANNER_RAW);
var_export($result);
echo "\n";
Expected result:
----------------
array (
'ini' => 'a"b',
)
Actual result:
--------------
array (
'ini' => 'ab"',
)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=62884&edit=1