0

以下は私の保存構成ファイルです:

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

3 に答える 3

1

追加

$config->setQuoteStrings(false);

ファイルに保存する前に

于 2013-10-22T10:50:11.327 に答える
1

暴言から始めましょう: コードが利用可能な唯一のドキュメントである場合でも、可能であれば、FLOSS ライブラリをハッキングしてやりたいことを実行するよりも、意図した/ドキュメント化されたとおりに FLOSS ライブラリを使用する方が常に良いです。たとえば、Config_Lite の新しいバージョンが出てきて、それにアップグレードすると、修正が「失われる」ことになります。(そして、私の主張を証明するかのように、バージョン 0.2.0 が本日http://pear.php.net/package/Config_Lite/download/0.2.0でリリースされました)

質問への回答をより具体的にするには、 write メソッドを使用して .ini ファイル出力をファイルに明示的に保存するか、 $config を文字列値として扱う何かを行う前に、setQuoteStrings メソッドを呼び出す必要があります

通常、次の順序で作業を行います。

  1. 最初に [config] オブジェクトを作成します。
  2. 適用可能な任意のオプションを設定します (この場合、引用符付き文字列をオフにするなど)。
  3. 必要に応じて他のメソッドを呼び出します (たとえば、値をセクションに設定するなど)。
  4. 結果のオブジェクトを使用 (例: .ini ファイルを保存)

tl;dr :

$config = ....
$confg->setQuoteStrings(false);
$config->set(...);
echo $config;
$config->save();
于 2013-10-23T22:27:40.417 に答える
0

自分で解決策を見つけました。protected $quoteStrings = true;ファイルのtoprotected $quoteStrings = false;を変更する必要がありLite.phpます:)

于 2013-10-22T10:54:02.410 に答える