0

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

数据库配置文件

    <?php
    // Database Constants
    db_pass = "hi";
    db_user = "hssi";
?>

我当前的脚本输出像这样 dbconfig.php

       <?php
    // Database Constants
    db_pass = "new_password";
"hi";
    db_user = "hssi";
?>
4

3 回答 3

2

代替

str_replace("\$db_pass =", $String

利用:

preg_replace('/\$db_pass = "(.*)";/', $String
于 2012-07-31T15:44:54.280 回答
2

您想使用正则表达式来替换整行,而不是行的开头。preg_replace()是用于查找和替换正则表达式的 PHP 函数。

执行您正在寻找的示例代码将是:

$dbFile = 'dbconfig.php';
$String = '$db_pass = "new_password";';
file_put_contents(
    $dbFile,
    preg_replace('/\$db_pass = "(.*)";/', $String, file_get_contents($dbFile))
);
于 2012-07-31T15:49:32.640 回答
0

看看这个: http: //php.net/manual/en/function.parse-ini-file.php

于 2012-07-31T15:44:31.647 回答