2012-07-31 130 views
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))); 

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

这是什么都与jQuery做?你有没有考虑过'sed'? – Brad 2012-07-31 15:43:17

回答

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

而不是

str_replace("\$db_pass =", $String 

用途:

preg_replace('/\$db_pass = "(.*)";/', $String