有人可以帮助我改变这个正则表达式
$regex = '~\\'.$var.'\s+=\s+\''.$oldval.'\';~is';
这是完整的代码功能
function write_value_of($var,$oldval,$newval, $file)
{
$contents = file_get_contents($file);
$regex = '~\\'.$var.'\s+=\s+\''.$oldval.'\';~is';
$contents = preg_replace($regex, "$var = '$newval';", $contents);
file_put_contents($file, $contents);
}
^正则表达式用于配置:
$database = 'stats';
$eCoin = '1';
但是我的配置是这样的:
database = stats
eCoin = 1
答案 0 :(得分:1)
你的正则表达式应该是:
^([^\s]+)\s+=\s+([^\s]+)$
我修改了你的功能如下:
function write_value_of($var,$oldval,$newval, $file)
{
$contents = file_get_contents($file);
$regex = "/^{$var}\s+=\s+{$oldval}$/m";
$contents = preg_replace($regex, "$var = '$newval';", $contents);
file_put_contents($file, $contents);
}