Edit report at https://bugs.php.net/bug.php?id=53916&edit=1

 ID:                 53916
 User updated by:    thasypher at gmail dot com
 Reported by:        thasypher at gmail dot com
 Summary:            parse_ini_file unable to handle strings with certain
                     characters
-Status:             Feedback
+Status:             Open
 Type:               Bug
 Package:            Filesystem function related
 Operating System:   Debian 5
 PHP Version:        Irrelevant
 Block user comment: N
 Private report:     N

 New Comment:

I know, but these ini's are generated by some other system that does not 
properly quote the values. 

As far as I know there is no requirement for ini's to have values quoted 
either, so it would be nice if parse_ini_file would properly handle that.


Previous Comments:
------------------------------------------------------------------------
[2012-06-07 08:22:42] zefr...@php.net

I don't know if it will help to find the cause of this bug, but I found that 
enclosing the string with quotes solves the problem :

ini file:
---------
[test]
some_thing = "R3iDn3!rj3j"

test file:
----------
<?php
print_r(parse_ini_file('bug.ini', true ));

result (as expected):
----------------------
Array ( [test] => Array ( [some_thing] => R3iDn3!rj3j ) )

------------------------------------------------------------------------
[2011-02-04 13:50:04] thasypher at gmail dot com

A sample INI could be:

----
[data]
test_case = 1
some_server = localhost
more_stuff = 8.8.8.8

[test]
somevalue = 1
password_server.domain.tld = h1b{k&Tx$jt2

----

In this case, it throws an "Error parsing <filename> on line 8.

Also with:
---
[test]
some_thing = R3iDn3!rj3j
---

it will fail.

So ISTM that special characters are causing issues in the parse_ini_file.

------------------------------------------------------------------------
[2011-02-04 10:46:39] ahar...@php.net

What version of PHP are you running? This seems to behave as expected
in PHP 5.3.5.

Could you also provide a (short) sample file.ini, please?

------------------------------------------------------------------------
[2011-02-03 09:00:14] thasypher at gmail dot com

Obviously the test script should not contain a comma next to the true value.

------------------------------------------------------------------------
[2011-02-03 08:56:52] thasypher at gmail dot com

Description:
------------
PHP seems to be unable to handle strings with certain signs (#$%) in an INI 
file parsed with parse_ini_file.

It throws a warning while doing that.
Even though normally you would quote strings to overcome this issue, the 
ConfigParser implementation of Python (for instance) does not do this. 

Test script:
---------------
print_r(parse_ini_file('file.ini', true, ));

Expected result:
----------------
An ini file with certain characters will throw a warning and may not be parsed 
completely.



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=53916&edit=1

Reply via email to