2012-07-31 149 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