我使用preg_replace的syntaxis有点问题。我有一个函数,应该在.php文件中替换许多变量的值(如配置文件)。
示例:
file.php:
<?php
$var="string value";
?>
功能:
function savedata($varname, $newvalue){
$data = file_get_contents("file.php");
$newdata = str_replace([find $varname="whatever";], $varname."=$newvalue;", $data);
file_put_contents("file.php", $newdata);
}
如果它运行应该将文件设为:
<?php
$var="a new string value";
?>
我找到了
preg_replace('/“([^”] +)“/',$ str,$ content)
但仅适用于引用值,如果我尝试添加$ varname。'='...在开始时,我会遇到各种错误。
感谢阅读!
答案 0 :(得分:1)
您可以执行以下使用preg_quote()
和preg_replace()
:
$data = '<?php
$var="string value";
?>'; # same as file_get_contents("file.php");
$varname = '$var';
$newvalue = 'a new string value';
$newdata = preg_replace('/('. preg_quote($varname) .'=")[^"]+(")/', "$1$newvalue$2", $data);
echo $newdata;