保存时删除双引号 - pear / Config Lite

时间:2013-10-22 10:45:01

标签: php file configuration pear ini

以下是我的保存配置文件:

<?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

3 个答案:

答案 0 :(得分:1)

添加

$config->setQuoteStrings(false);

将其保存到文件

之前

答案 1 :(得分:1)

我将开始咆哮:你总是更好地使用FLOSS库按照预期/记录而不是黑客攻击他们做你想做的事情,如果可能的话 - 即使代码是唯一的文件可用。例如,如果出现新版本的Config_Lite并且您升级到该版本,那么您将失去&#34;丢失&#34;你的修复。 (并且,好像要证明我的观点,版本0.2.0今天在http://pear.php.net/package/Config_Lite/download/0.2.0

发布

要更具体地回答您的问题, 您需要在使用write方法将.ini文件输出显式保存到文件之前调用setQuoteStrings方法,或者执行任何将$ config视为字符串值

通常情况下,我按此顺序执行操作:

  1. 首先创建[config]对象。
  2. 设置适用的任何选项(例如在这种情况下关闭引用的字符串)
  3. 根据需要调用其他任何方法(例如,将值设置为部分等)
  4. 使用结果对象(例如保存.ini文件)
  5. <强> TL;博士

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

答案 2 :(得分:0)

找到自己的解决方案。您需要将protected $quoteStrings = true;文件中的protected $quoteStrings = false;更改为Lite.php:)