Browse Source

MFH: Allow underscore at start of labels as underscore has no meaning here

(fixes #44842)
PECL
Arnaud Le Blanc 18 years ago
parent
commit
dee3bb2371
  1. 2
      NEWS
  2. 2
      Zend/zend_ini_scanner.l
  3. 17
      ext/standard/tests/general_functions/parse_ini_file.phpt

2
NEWS

@ -38,6 +38,8 @@ PHP NEWS
newline). (Arnaud)
- Fixed bug #45044 (relative paths not resolved correctly). (Dmitry)
- Fixed bug #44925 (preg_grep() modifies input array). (Nuno)
- Fixed bug #44842 (parse_ini_file keys that start/end with underscore).
(Arnaud)
- Fixed bug #44100 (Inconsistent handling of static array declarations with
duplicate keys). (Dmitry)
- Fixed bug #43817 (opendir() fails on Windows directories with parent

2
Zend/zend_ini_scanner.l

@ -312,7 +312,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
TABS_AND_SPACES [ \t]
WHITESPACE [ \t]+
CONSTANT [a-zA-Z][a-zA-Z0-9_]*
LABEL [a-zA-Z0-9][a-zA-Z0-9._-]*
LABEL [a-zA-Z0-9_][a-zA-Z0-9._-]*
TOKENS [:,.\[\]"'()|^&+-/*=%$!~<>?@{}]
OPERATORS [&|~()!]
DOLLAR_CURLY "${"

17
ext/standard/tests/general_functions/parse_ini_file.phpt

@ -94,6 +94,15 @@ $ini = "[section1]\nname = value";
file_put_contents($filename, $ini);
var_dump(parse_ini_file($filename, true));
/* #44842, labels starting with underscore */
$ini = <<<'INI'
foo=bar1
_foo=bar2
foo_=bar3
INI;
file_put_contents($filename, $ini);
var_dump(parse_ini_file($filename, true));
@unlink($filename);
echo "Done\n";
?>
@ -182,4 +191,12 @@ array(1) {
string(5) "value"
}
}
array(3) {
["foo"]=>
string(4) "bar1"
["_foo"]=>
string(4) "bar2"
["foo_"]=>
string(4) "bar3"
}
Done
Loading…
Cancel
Save