找到这个东西,并取代之后的东西

时间:2012-07-31 15:37:30

标签: php jquery

基本上我希望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";
?>

3 个答案:

答案 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)