1

我想为我当前的项目创建一个安装程序,它会自动修改几十个配置文件。

因此,如果表单已发送,PHP 脚本应查看搜索选项在哪个配置文件中并进行更改。在你问之前,我不能把文件放在一起;)。

一个基本的配置行如下所示: $config['base_url'] = 'test';. 我尝试使用str_replace(),但这不起作用,因为我不知道变量中当前有什么。

所以我需要一个$config['base_url'] = '%';在多个文件中搜索并将其替换为$config['base_url'] = 'new_value';(例如)的函数。

4

2 回答 2

2

我意识到答案已被接受,最初我删除了这个,但是,在评论中你提到配置是可编辑的,这可能意味着其他用户,所以你不能保证间距会匹配,也不能保证他们会使用'而不是"总是,所以下面的内容可能更宽容一点

$name = 'base_url';
$value = 'new_value';
$config = '$config["base_url"] = "old_value";';

$config  = preg_replace('/\[(?:\'|\")'.$name.'(?:\'|\")\]\s*=\s*(\'|\")(.*)\\1;/', "['".$name."'] = '$value';", $config);

echo '<pre>', var_dump($config), '</pre>';
于 2013-03-23T13:19:09.057 回答
0

您可以使用如下的正则表达式:

/\$config\['base_url'\] = '[a-zA-Z0-9]';/

您必须适应每一行。

在我看来,更好的解决方案是创建一个模板配置文件,其行如下:

$config['base_url'] = '%BASE_URL%';

您可以简单地使用str_replace().

于 2013-03-23T13:09:48.353 回答