2012-12-20 91 views
0
文件保存多行字符串

我試圖挽救一個多行字符串,這樣的事情在明文包含變量,與PHP和CodeIgniter的

define host { 
     use      template; 
     host_name    $host_name; 
     address     46.224.2.220; 
     contacts    $email; 
} 

但變量如$ host_name和$ email必須用它們的值替換。 s

我無法弄清楚這一點。任何方式來實現這一目標?

+1

正則表達式替換preg_replace() - 如果您已經嘗試過,它有什麼問題? –

+0

謝謝,實際上我不知道如何保持這種間距和形狀,與上面顯示的相似。 – Zim3r

+0

我不明白爲什麼preg_/str_replace會改變這種情況 - 假設你正確地閱讀它 - 這是你沒​​有問過的另一個問題,我也不確定答案。 –

回答

1

您可以使用str_replace

$plain_text = "define host { 
     use      template; 
     host_name    $host_name; 
     address     46.224.2.220; 
     contacts    $email; 
}"; 


$find = array("$host_name", "$email"); 
$replace = array($host_name, $email); 

$new_plain_text = str_replace($find, $replace, $plain_text); 
1

$variables當用雙引號或者定界符語法(reference)被指定的字符串被擴展。所以你可以簡單地做:

$host_name = 'foo'; 
$email = 'bar'; 

$plain_text = "define host { 
     use      template; 
     host_name    $host_name; 
     address     46.224.2.220; 
     contacts    $email; 
}"; 

但是,變量必須在字符串表達式之前定義。如果他們不是,你可以使用其他答案中解釋的str_replace()方法。