使用带符号的PHP解析ini文件

时间:2015-11-06 06:19:56

标签: php qt ini

您好我需要使用php解析下面显示的ini文件,它基本上是使用Qt QSettings创建的,我尝试过代码here,但似乎INI文件的格式不同。< / p>

是否可以使用PHP解析以下格式的INI文件?

[General]
Address=
Email=test@gmail.com
Password=123$
Sync=0
Loggedin=1


[Drives]
1\drive=/
1\free=281
1\size=908
2\drive=/media/New_Volume
2\free=6
2\size=7
3\drive=/media/sdb2
3\free=906
3\size=916
size=2


[Cam]
1\detection=0
1\Area.height=2.4
1\Area.width=9.5
2\detection=0
2\Area.height=2.4
2\Area.width=9.5
3\detection=0
3\Area.height=2.4
3\Area.width=9.5
size=2

更新

实际上上面的ini正如下面的回答所说的那样,我的actyual ini包含$符号,这就是造成问题的原因。

 [General]
    Address=
    Email=test@gmail.com
    Password=123$
    Sync=0
    Loggedin=1


    [Drives]
    1\drive=/
    1\free=281
    1\size=908
    2\drive=/media/New_Volume
    2\free=6
    2\size=7
    3\drive=/media/sdb2
    3\free=906
    3\size=916
    size=2


    [Cam]
    1\detection=0
    1\Area.height=2.4
    1\Area.width=9.5
    2\detection=0
    2\Area.height=2.4
    2\Area.width=9.5
    3\detection=0
    3\Area.height=2.4
    3\Area.width=9.5
    size=2

似乎我必须逃避$符号。

1 个答案:

答案 0 :(得分:2)

它工作得很好,看看php代码,而.ini文件完全保留。

$ini_array = parse_ini_file("settings.ini",true);
print_r($ini_array);

//will output
Array
(
    [General] => Array
        (
            [Address] =>
            [Email] => test@gmail.com
            [Password] => 123$ // note the $ sign in value here
            [Sync] => 0
            [Loggedin] => 1
        )

    [Drives] => Array
        (
            [1\drive] => /
            [1\free] => 281
            [1\size] => 908
            [2\drive] => /media/New_Volume
            [2\free] => 6
            [2\size] => 7
            [3\drive] => /media/sdb2
            [3\free] => 906
            [3\size] => 916
            [size] => 2
        )

    [Cam] => Array
        (
            [1\detection] => 0
            [1\Area.height] => 2.4
            [1\Area.width] => 9.5
            [2\detection] => 0
            [2\Area.height] => 2.4
            [2\Area.width] => 9.5
            [3\detection] => 0
            [3\Area.height] => 2.4
            [3\Area.width] => 9.5
            [size] => 2
        )

)