2014-05-19 67 views
0

可能有人幫我改這個表達式PHP - 幫助正則表達式配置文件

$regex = '~\\'.$var.'\s+=\s+\''.$oldval.'\';~is'; 

這是完整的代碼功能

function write_value_of($var,$oldval,$newval, $file) 
{ 
    $contents = file_get_contents($file); 
    $regex = '~\\'.$var.'\s+=\s+\''.$oldval.'\';~is'; 
    $contents = preg_replace($regex, "$var = '$newval';", $contents); 
    file_put_contents($file, $contents); 
} 

^,對於配置像正則表達式使用:

$database = 'stats'; 
$eCoin = '1'; 

但我的配置是這樣的:

database = stats 
eCoin = 1 
+0

http://www.php.net/manual/en/function.parse-ini-file .php可能比正則表達式更合適。 – georg

+0

謝謝,但我有一些理由爲什麼我選擇 ,你能幫我改變嗎? –

+0

@PutraFajarHananuddin:什麼?你能改說你的問題嗎?爲什麼你不能使用'parse_ini_file()'? –

回答

1

你的正則表達式應該是:

^([^\s]+)\s+=\s+([^\s]+)$ 

我作如下修改你的函數:

function write_value_of($var,$oldval,$newval, $file) 
{ 
    $contents = file_get_contents($file); 
    $regex = "/^{$var}\s+=\s+{$oldval}$/m"; 
    $contents = preg_replace($regex, "$var = '$newval';", $contents); 
    file_put_contents($file, $contents); 
}