2013-10-22 31 views
0

下面是我保存配置文件:保存時刪除雙qoutes - 梨/ Config_Lite

<?php 

require_once 'Config/Lite.php'; 

$config = new Config_Lite(); 
$config->read('/var/www/html/svnmanager/Config/testing'); 
$config->set('/lol', 'user', 'JohnDoe') 
     ->set('/lol', 'password', 'lemo') 
     ->set('db2', 'user', ''); 


// set with ArrayAccess 
$config['general'] = array('lang' => 'fr'); 

echo $config; 

$config->save(); 

?> 

及以下的輸出:

debug = "" 

[db] 
user = "JohnDoe" 
password = "d0g1tcVs$HgIn1" 

[db2] 
user = "" 
password = "d0g1tcVs$HgIn1" 

[general] 
lang = "fr" 

[/lol] 
user = "JohnDoe" 
password = "ddada" 

保存文件時,如何去除雙qoutes? 例如:

[/lol] 
user = JohnDoe 
password = ddada 

回答

1

保存到發現自己的解決方案文件

+0

我沒有像你說的,但它並沒有爲我工作:('組$ config-> setQuoteStrings(假); 組$ config- > save();' –

+1

這是因爲你在調用這個函數之前打印輸出 –

0

之前添加

$config->setQuoteStrings(false); 

。您需要更改protected $quoteStrings = true;protected $quoteStrings = false;Lite.php文件:

1

我會用咆哮開始:你總是最好使用FLOSS庫,旨在/記錄,而不是黑客他們做你想要什麼如果可能的話 - 即使代碼是唯一可用的文檔。例如,如果出現新版本的Config_Lite並升級到該版本,則會「丟失」修復程序。 (而且,似乎是爲了證明我的觀點,0.2.0版今天發佈的http://pear.php.net/package/Config_Lite/download/0.2.0

更具體來回答你的問題,你需要或者你前致電setQuoteStrings方法明確地保存。 ini文件輸出到使用寫入方法的文件或執行任何將$ config作爲字符串值的對象

通常情況下,我會做的事情按以下順序:

  1. 首先創建[配置]對象。
  2. 設置任何適用的選項(如在這種情況下,關閉引號中的字符串)
  3. 呼叫任何其他方法需要(如設定值部分等)
  4. 使用產生的對象(例如保存.ini文件)

TL;博士

$config = .... 
$confg->setQuoteStrings(false); 
$config->set(...); 
echo $config; 
$config->save();