保存时删除双 qoutes - 梨/Config_Lite


Remove double qoutes when saving - pear/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

添加

$config->setQuoteStrings(false);

在将其保存到文件之前

我将从一个

咆哮开始:如果可能的话,你最好按照预期/记录使用FLOSS库,而不是破解它们来做你想做的事 - 即使代码是唯一可用的文档。例如,如果新版本的Config_Lite发布并且您升级到该版本,您将"丢失"修复程序。(而且,好像是为了证明我的观点,0.2.0 版本今天在 http://pear.php.net/package/Config_Lite/download/0.2.0 发布)

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

通常,我会按以下顺序执行操作:

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

博士

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

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