jelix / inifile
类用于读取和修改 ini 文件,同时保留注释和空行
v3.4.0
2024-02-13 16:19 UTC
Requires
- php: >=5.6.1
Requires (Dev)
- phpunit/phpunit: 8.5.* || 11.0.*
README
一些类用于读取和修改 ini 文件,同时保留注释和空行。
它们支持部分和数组值。您还可以合并部分,合并两个 ini 文件,以及重命名一些值或部分。
安装
您可以使用 Composer 安装它。在您的项目中
composer require "jelix/inifile"
使用方法
\Jelix\IniFile\IniModifier
类允许读取 ini 文件,修改其内容,并通过保留其注释和空行保存它。
不要仅使用此类来读取内容。而是使用 \Jelix\IniFile\Util
或 parse_ini_file()
进行此操作,它更高效和性能更好。
$ini = new \Jelix\IniFile\IniModifier('myfile.ini'); // setting a parameter. (section_name is optional) $ini->setValue('parameter_name', 'value', 'section_name'); // retrieve a parameter value. (section_name is optional) $val = $ini->getValue('parameter_name', 'section_name'); // remove a parameter $ini->removeValue('parameter_name', 'section_name'); // save into file $ini->save(); $ini->saveAs('otherfile.ini'); // importing an ini file into an other $ini2 = new \Jelix\IniFile\IniModifier('myfile2.ini'); $ini->import($ini2); $ini->save(); // merging two section: merge sectionSource into sectionTarget and then // sectionSource is removed $ini->mergeSection('sectionSource', 'sectionTarget');
它还支持数组值(索引或关联)如
foo[]=bar
foo[]=baz
assoc[key1]=car
assoc[otherkey]=bus
然后在 PHP 中
$ini = new \Jelix\IniFile\IniModifier('myfile.ini');
$val = $ini->getValue('foo'); // array('bar', 'baz');
$val = $ini->getValue('assoc'); // array('key1'=>'car', 'otherkey'=>'bus');
$ini->setValue('foo', 'other value', 0, '');
$val = $ini->getValue('foo'); // array('bar', 'baz', 'other value');
$ini->setValue('foo', 'five', 0, 5);
$val = $ini->getValue('foo'); // array('bar', 'baz', 'other value', 5 => 'five');
$ini->setValue('assoc', 'other value', 0, 'ov');
$val = $ini->getValue('assoc'); // array('key1'=>'car', 'otherkey'=>'bus', 'ov'=>'other value');
保存后,ini 内容是
foo[]=bar
foo[]=baz
assoc[key1]=car
assoc[otherkey]=bus
foo[]="other value"
foo[]=five
assoc[ov]="other value"
注意:结果可以由 parse_ini_file()
解析。
查看类了解其他方法和选项。
\Jelix\IniFile\MultiIniModifier
允许同时加载两个 ini 文件,其中第二个文件“覆盖”第一个文件的值。
\Jelix\IniFile\IniModifierArray
允许同时加载多个文件,并可以将它们的值视为合并的文件。
\Jelix\IniFile\Util
包含简单的方法来读取、写入和合并 ini 文件。这些只是 parse_ini_file()
的包装。