我想为我当前的项目创建一个安装程序,它会自动修改几十个配置文件。
因此,如果表单已发送,PHP脚本应查看搜索选项所在的配置文件并进行更改。在你问之前,我不能把文件放在一起;)。
基本配置行如下所示:
$config['base_url'] = 'test';
。
我尝试使用str_replace()
,但这不起作用,因为我不知道变量中当前的内容。
所以我需要一个在多个文件中搜索$config['base_url'] = '%';
的函数,并将其替换为$config['base_url'] = 'new_value';
(例如)。
答案 0 :(得分: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>';
答案 1 :(得分:0)
您可以使用如下的正则表达式:
/\$config\['base_url'\] = '[a-zA-Z0-9]';/
你必须适应每一行。
在我看来,更好的解决方案是使用如下行创建模板配置文件:
$config['base_url'] = '%BASE_URL%';
您只需使用str_replace()
。