我想为我当前的项目创建一个安装程序,它会自动修改许多配置文件。
因此,如果表单被发送,PHP脚本应该查看搜索选项所在的配置文件并更改它。在你问之前,我不能把这些文件放在一起。
一个基本的配置行看起来像这样:$config['base_url'] = 'test';
。我尝试使用str_replace()
,但这不起作用,因为我不知道当前在变量中是什么。
所以我需要一个在多个文件中搜索$config['base_url'] = '%';
并将其替换为$config['base_url'] = 'new_value';
的函数(例如)。
我意识到答案是被接受的,最初我删除了这个,然而,在评论中你提到配置是可编辑的,这大概意味着其他用户,所以你不能保证间距会匹配,也不是他们总是使用'
而不是"
,所以下面可能是更宽容的
$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>';
您可以像这样使用正则表达式:
/$config['base_url'] = '[a-zA-Z0-9]';/
你必须适应每一行。
在我看来,一个更好的解决方案是创建一个模板配置文件,其中的行如下:
$config['base_url'] = '%BASE_URL%';
你可以直接使用str_replace()