阅读,编辑&保存配置文件(php)

时间:2010-07-07 00:28:40

标签: php file-manipulation

我有两个配置文件。一个是 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";
?>

2 个答案:

答案 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