2012-12-20 62 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()方法。