2015-11-06 48 views
0

嗨我需要解析使用php下面顯示的ini文件,這基本上是使用Qt QSettings創建的,我試過代碼here,但似乎INI文件是不同的格式。使用帶符號的PHP解析ini文件

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

[General] 
Address= 
[email protected] 
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 protected] 
    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 

而且似乎我必須逃避$符號。

回答

2

它工作的很好,看看php代碼,而.ini文件保持完全一樣。

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

//will output 
Array 
(
    [General] => Array 
     (
      [Address] => 
      [Email] => [email protected] 
      [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 
     ) 

) 
+0

嗨,謝謝你的回答。實際上,我的ini文件正在配備像密碼= 123 $這樣的字符'$',在這種情況下,php失敗了。這是否意味着我不能在ini文件中使用字符$? – Haris

+1

只是把整個字符串放在引號中,例如。 '密碼=「123 $」'你應該很好 –

+0

其實現在我不能修改ini文件,它是爲其他應用程序做的,所以我必須按照原樣閱讀,是否有任何方法可以解決這個問題PHP。 – Haris