我有两个配置文件。一个是 ini 一个是 php 。他们看起来像下面。我需要更新数据库文件名,但其余文件必须不变。知道怎么做吗?
的config.ini
; Turning Debugging on
[test]
developer = true
; Production site configuration data
[production]
database.params.dbname = /var/lib/firebird/data/radek_db.gdb
和setting.php
<?php
/**
The settings file
*/
#This will be done automatically if u want to override it uncomment the next line few lines
/*
$Path = 'mainline';
#Database to connect to:
$Database = "radek_db";
?>
答案 0 :(得分:3)
你能用file_get_contents()读取文件到字符串,对它做一个str_replace()或preg_replace(),然后用file_put_contents()保存吗?
我会将所有内容与文档相关联,但我没有声誉可以创建多个链接......
编辑:如果您只知道该选项的名称,则可以使用preg_match查找带有正则表达式的选项名称(类似'/^database\.params\.dbname = (.*)$/'
),然后在你找到的名字上做一个str_replace。
这样的事情:
$file = file_get_contents('/path/to/config/file');
$matches = array();
preg_match('/^database\.params\.dbname = (.*)$/', $file, $matches);
$file = str_replace($matches[1], $new_value, $file);
file_put_contents('/path/to/config/file', $file);
答案 1 :(得分:1)
对于阅读ini文件,有parse_ini_file
。其余的,你必须为此目的编写一个简单的脚本......或者使用sed
。