基本上我希望PHP打开配置文件,搜索字符串并替换后面的内容
我在我创建的代码中遇到的问题是它找到字符串$db_pass =
并且能够替换它......但是在文件中有一条额外的"password");
行...所以我需要它能够替换整行,或者切断其余部分以便能够删除它。
$dbFile = 'dbconfig.php';
$String = "\$db_pass =\"new_password\";\n";
file_put_contents($dbFile, str_replace("\$db_pass =", $String, file_get_contents($dbFile)));
dbconfig.php
<?php
// Database Constants
db_pass = "hi";
db_user = "hssi";
?>
我当前的脚本输出如下 dbconfig.php
<?php
// Database Constants
db_pass = "new_password";
"hi";
db_user = "hssi";
?>
答案 0 :(得分:2)
而不是
str_replace("\$db_pass =", $String
使用:
preg_replace('/\$db_pass = "(.*)";/', $String
答案 1 :(得分:2)
您想使用regular expression替换整行,而不是行的开头。 preg_replace()
是用于查找和替换正则表达式的PHP函数。
要执行您正在寻找的示例代码将是:
$dbFile = 'dbconfig.php';
$String = '$db_pass = "new_password";';
file_put_contents(
$dbFile,
preg_replace('/\$db_pass = "(.*)";/', $String, file_get_contents($dbFile))
);
答案 2 :(得分:0)