【问题标题】:Remove double qoutes when saving - pear/Config_Lite保存时去掉双引号 - pear/Config Lite
【发布时间】:2013-10-31 04:37:39
【问题描述】:

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

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

保存文件时如何删除双引号? 例如:

[/lol]
user = JohnDoe
password = ddada

【问题讨论】:

    标签: php file configuration pear ini


    【解决方案1】:

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

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

    通常,我会按以下顺序做事:

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

    tl;dr

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        添加

        $config->setQuoteStrings(false);
        

        在保存到文件之前

        【讨论】:

        • 我按照你说的做了,但对我没用 :( $config-&gt;setQuoteStrings(false); $config-&gt;save();
        • 那是因为你在调用这个函数之前打印了输出
        猜你喜欢
        • 2014-04-07
        • 1970-01-01
        • 2019-04-23
        • 1970-01-01
        • 2013-07-06
        • 1970-01-01
        • 1970-01-01
        • 2019-06-13
        • 2023-03-06
        相关资源
        最近更新 更多